avr-libc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-commit] [2216] This is avr-libc-1.7.1.


From: Joerg Wunsch
Subject: [avr-libc-commit] [2216] This is avr-libc-1.7.1.
Date: Wed, 16 Feb 2011 21:36:52 +0000

Revision: 2216
          http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2216
Author:   joerg_wunsch
Date:     2011-02-16 21:36:51 +0000 (Wed, 16 Feb 2011)
Log Message:
-----------
This is avr-libc-1.7.1.

Added Paths:
-----------
    tags/avr-libc-1_7_1-release/
    tags/avr-libc-1_7_1-release/ChangeLog
    tags/avr-libc-1_7_1-release/NEWS
    tags/avr-libc-1_7_1-release/README
    tags/avr-libc-1_7_1-release/configure.ac

Removed Paths:
-------------
    tags/avr-libc-1_7_1-release/ChangeLog
    tags/avr-libc-1_7_1-release/NEWS
    tags/avr-libc-1_7_1-release/README
    tags/avr-libc-1_7_1-release/configure.ac

Deleted: tags/avr-libc-1_7_1-release/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog    2011-02-16 08:44:23 UTC (rev 2213)
+++ tags/avr-libc-1_7_1-release/ChangeLog       2011-02-16 21:36:51 UTC (rev 
2216)
@@ -1,55 +0,0 @@
-2011-02-16  Anitha Boyapati <address@hidden>
-
-       * include/avr/power.h: Changes to power_all_enable()/disable() for 
-       Xmega A and D family
-
-2011-02-14  Anitha Boyapati <address@hidden>
-
-       Thanks to Praveen Kaushik <address@hidden> for the device
-       support.
-       * configure.ac: Support for ATMega16HVB RevB, ATMega32HVB RevB.
-       * devtools/gen-avr-lib-tree.sh: Same.
-       * doc/api/main_page.dox: Same.
-       * doc/api/using-tools.dox: Same.
-       * include/avr/eeprom.h: Same.
-       * include/avr/io.h: Same.
-       * include/avr/iom16hvb.h: Header file regenerated.
-       * include/avr/iom16hvbrevb.h: Added newly.
-       * include/avr/iom32hvb.h: Header file regenerated.
-       * include/avr/iom32hvbrevb.h: Added newly.
-       * include/avr/Makefile.am: Support for atmega16HVB RevB, 
-       ATMega32HVB RevB.
-       * include/avr/power.h: Same.
-       * include/avr/sleep.h: Same.
-       * include/avr/wdt.h: Same.
-
-2011-02-14  Anitha Boyapati <address@hidden>
-
-       Thanks to Usha Gupta <address@hidden> for the device
-       support.
-       * include/avr/io.h: Support for AVR Tiny84a
-       * include/avr/iotn84a.h: Same.
-       * include/avr/Makefile.am: Same.
-
-2011-02-14  Anitha Boyapati <address@hidden>
-
-       Fix for #bug31873
-       * include/avr/power.h: Modifications to power_aes_enable/disable() 
-    power_all_enable/disable() functions for Xmega devices. 
-
-2011-02-11  Anitha Boyapati <address@hidden>
-
-       Thanks to Praveen Kaushik <address@hidden> for
-       the fix for #bug31990.
-       * include/avr/io90pwm81.h: PRPSC0 is renamed to PRPSCR in sync 
-       with device XML file.
-       * include/avr/power.h:  power_psc0_enable()/disable() have been 
-       renamed to power_pscr_enable()/disable(). Documentation changes
-       to include PWM81 are also done.
-
-
-
-2011-02-09  Joerg Wunsch <address@hidden>
-
-       * include/avr/iom8x.h (_VECTORS_SIZE): fix wrong vector table size
-       for ATmega168A devices.

Copied: tags/avr-libc-1_7_1-release/ChangeLog (from rev 2215, 
trunk/avr-libc/ChangeLog)
===================================================================
--- tags/avr-libc-1_7_1-release/ChangeLog                               (rev 0)
+++ tags/avr-libc-1_7_1-release/ChangeLog       2011-02-16 21:36:51 UTC (rev 
2216)
@@ -0,0 +1,59 @@
+2011-02-16  Joerg Wunsch <address@hidden>
+
+       Released avr-libc-1.7.1.
+
+2011-02-16  Anitha Boyapati <address@hidden>
+
+       * include/avr/power.h: Changes to power_all_enable()/disable() for 
+       Xmega A and D family
+
+2011-02-14  Anitha Boyapati <address@hidden>
+
+       Thanks to Praveen Kaushik <address@hidden> for the device
+       support.
+       * configure.ac: Support for ATMega16HVB RevB, ATMega32HVB RevB.
+       * devtools/gen-avr-lib-tree.sh: Same.
+       * doc/api/main_page.dox: Same.
+       * doc/api/using-tools.dox: Same.
+       * include/avr/eeprom.h: Same.
+       * include/avr/io.h: Same.
+       * include/avr/iom16hvb.h: Header file regenerated.
+       * include/avr/iom16hvbrevb.h: Added newly.
+       * include/avr/iom32hvb.h: Header file regenerated.
+       * include/avr/iom32hvbrevb.h: Added newly.
+       * include/avr/Makefile.am: Support for atmega16HVB RevB, 
+       ATMega32HVB RevB.
+       * include/avr/power.h: Same.
+       * include/avr/sleep.h: Same.
+       * include/avr/wdt.h: Same.
+
+2011-02-14  Anitha Boyapati <address@hidden>
+
+       Thanks to Usha Gupta <address@hidden> for the device
+       support.
+       * include/avr/io.h: Support for AVR Tiny84a
+       * include/avr/iotn84a.h: Same.
+       * include/avr/Makefile.am: Same.
+
+2011-02-14  Anitha Boyapati <address@hidden>
+
+       Fix for #bug31873
+       * include/avr/power.h: Modifications to power_aes_enable/disable() 
+    power_all_enable/disable() functions for Xmega devices. 
+
+2011-02-11  Anitha Boyapati <address@hidden>
+
+       Thanks to Praveen Kaushik <address@hidden> for
+       the fix for #bug31990.
+       * include/avr/io90pwm81.h: PRPSC0 is renamed to PRPSCR in sync 
+       with device XML file.
+       * include/avr/power.h:  power_psc0_enable()/disable() have been 
+       renamed to power_pscr_enable()/disable(). Documentation changes
+       to include PWM81 are also done.
+
+
+
+2011-02-09  Joerg Wunsch <address@hidden>
+
+       * include/avr/iom8x.h (_VECTORS_SIZE): fix wrong vector table size
+       for ATmega168A devices.

Deleted: tags/avr-libc-1_7_1-release/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2011-02-16 08:44:23 UTC (rev 2213)
+++ tags/avr-libc-1_7_1-release/NEWS    2011-02-16 21:36:51 UTC (rev 2216)
@@ -1,1139 +0,0 @@
-*** Changes since avr-libc-1.7.0:
-
-* Bugs fixed:
-
-  [Atmel: #11793] XMEGA A devices: 4096-cycle DAC refresh interval setting has 
wrong name
-  [Atmel: #12314] Hi-Res(CTRLA) and AWex (FDEMASK)
-  [Atmel: #12536] Remove CALCTRL in xmega header files.
-  [no-id] Fix wrong vector table size for ATmega168A devices.
-  [#29235] power.h - warning: comma at end of enumerator list
-  [#30783] Missing prototype in power.h
-  [#31270] Stale link to Philips (now NXP) I2C specification/users manual
-
-* New devices supported:
-
-  ATTiny84a
-  ATMega16HVB RevB
-  ATMega32HVB RevB
-
-* Contributed Patches:
-
-* Other changes:
-
-
-*** Changes in avr-libc-1.7.0:
-
-* Bugs fixed:
-  [Atmel: #7159] the memory location of tccr0b is mixed with tccr0a for 
tiny48/88
-  [no-id] Fix CLKPCE bit value to be 7.
-  [no-id] inlining failed in call to '_delay_ms': function body not available
-  [no-id] malloc() could allocate memory beyond the limits of heap
-  [no-id] xmega header file updates.
-  [no-id] Enable ATmega128RFA1 in <avr/power.h>
-  [no-id] longjmp() writes to EIND register, it is forbidden by AVR-GCC's API
-  [no-id] Define _VECTORS_SIZE in iom3000.h
-  [no-id] Redefine __tmp_reg__ and __zer_reg__ for AVR TINY. 
-  [AVR Tools: #9724] Error in ATtiny13A include file, PRR register
-  [sourceforge.net: #1836849] Multiplication does not work for AT90USB162
-  [sourceforge.net: #1883630] ATmegaXX4 - USART0 and USART1 additional bits 
aliases
-  [sourceforge.net: #1910885] Typo in io90pwm3b.h
-  [sourceforge.net: #1913681] Missing INT3 define in io90pwm3b.h
-  [sourceforge.net: #1957780] New 'FUSES-support' gives error in c++ files
-  [sourceforge.net: #1969436] Wrong flash size for ATmega32U4
-  [sourceforge.net: #2010688] ATtiny48 SPSR register bits
-  [sourceforge.net: #2012448] ATmega6450 USART Interrupts
-  [sourceforge.net: #2016128] Incorrect ATMega32[c1|m1] Header Entries
-  [sourceforge.net: #2018957] Wrong SPM_PAGESIZE for mega1284P
-  [sourceforge.net: #2033993] User manual: data symbol spec incorrect
-  [sourceforge.net: #2305703] iom162.h ASSR bitdef, typo?
-  [sourceforge.net: #2411516] Error/Bug in the iotn88.h file
-  [sourceforge.net: #2420567] ATmega329P missing in sleep.h
-  [sourceforge.net: #2693898] ATmega32U6 missing in power.h
-  [sourceforge.net: #2738926] avr/eeprom.h EEGET and EEPUT
-  [sourceforge.net: #2812125] ATmega16U4 missing in power.h 
-  [sourceforge.net: #2913419] Misspelled Structure Element - xmega
-  [#3485]  Using float arithmetic without linking with -lm result in incorrect 
code
-  [#19079] sscanf %s eats 1 char too much
-  [#19494] sfr_defs.h documentation: Remove references to deprecated macros.
-  [#21410] Incorrect use of 16-bit eeprom addresses in devices with 8-Bit 
address registers
-  [#21621] Allow autoconf 2.61
-  [#21622] Support building in a subdirectory
-  [#21623] boot.h: Use the "z" register constraint  
-  [#21869] Multiple defines in iotn2313.h
-  [#21872] __floatunsisf/undisf incorrectly named
-  [#21905] scanf: float conversion ignores the suppression symbol
-  [#21906] scanf: float conversion, wrong width count in case of sign or 
exponent
-  [#21931] Wrong fuses defined for the ATMEGA88/168
-  [#21935] Typo in avr-ar example avr-as should be avr-ar
-  [#21995] pgm_read_xxxx() does not use enhanced LPM instruction
-  [#21958] UBRR0/UBRR1 SFR is redefined for ATmegaXX8p and atmega1284p devices
-  [#21962] PSYNC1_0 a PSYNC1_1 bits not defined for AT90PWM3B and AT90PWM316 
devices
-  [#21986] Typo in iotn13.h
-  [#22016] Typo in iotn2313.h: SIG_OUTPUT_COPMARE0A
-  [#22119] Misleading statement in FAQ
-  [#22153] setjmp.o is wrong in libc.a (1.6.1) for avr's with SPH
-  [#22240] Add EEPROM Page Size to header files
-  [#22276] wdt_reset fails with devices with large WDTCSR addresses
-  [#22377] Wrong XRAMEND for some recent ioXXX.h header files.
-  [#22387] Missing EIMSK and __EEPROM_REG_LOCATIONS__ in iom168p.h
-  [#22390] Unclear note about function pointers
-  [#22447] Summary of iom?8p.h header updates needed
-  [#22493] Typo in iom1284p.h.
-  [#22540] Adding signature bytes to header files
-  [#22548] Missing IVCE and IVSEL in iom328p.h
-  [#22568] Missing EEPROM_REG_LOCATIONS in iom328p.h
-  [#22572] Documentation FAQ example proposal
-  [#22642] AT90USB162 and AT90USB82 not supported in <avr/power.h>
-  [#22643] math.h c99 incompability
-  [#22666] io90pwm3b.h errors
-  [#22785] ATMega644P Support Missing from avr/include/avr/sleep.h
-  [#22828] eeprom_write_block(): incompatibility in args order
-  [#22834] ATmega164P/324P/644P/1284P lack BODS/BODSE bits in MCUCR
-  [#22870] Error in wdt.h and ATmega164P
-  [#22877] Fuse information wrong for xmega devices.
-  [#22878] eeprom_*_word/dword/block cause hang in ATmega256x
-  [#23004] Watchdog enable docu only generated for Xmega series
-  [#23032] Define PORTxn, PINxn, DDxn bit names in iomxx4.h.
-  [#23166] atmega328p does not have SPMEN
-  [#23261] AT90USB162 and AT90USB82 missing power_all_[enable,disable]() in 
power.h
-  [#23409] Provide an implementation for strtok()
-  [#23546] FAQ documentation symbol seems wrong
-  [#23554] Wrong bit values in iom32u4.h
-  [#23677] Request for cbrt() and strdup to be added to libc
-  [#23703] eeprom write functions optimisation
-  [#23774] Using some defines from avr/fuse.h produces warning
-  [#23850] ATMega8 does not have MCUSR defined
-  [#23871] clock_prescale_set() not available for ATmega32U4
-  [#23959] Small typo in deprecated documentation
-  [#23969] eeprom_read_byte() throws interrupt EE_READY although EERIE is 
cleared, controller resets
-  [#24207] Example in inttypes.h is wrong
-  [#24446] _attribute_ should be __attribute__ (with double underscores)
-  [#24762] 1.6.3 wdt.h compile-time bug
-  [#24890] Small error in libm source fp_rempio2.S
-  [#25048] eeprom.h will not compile as c++ code.
-  [#25120] pgm_read_*_far() functions cause incorrect usage of the Z pointer 
for RAM access in ATxmega series
-  [#25131] Incorrect definition of default lfuse bits for ATTiny2313
-  [#25261] TWIHSR spelling deviates from XML file in AVR Studio 4.15
-  [#25535] Nonexistent bit definitions in iotn88.h/iotn48.h AREFD REFS1 RWWSB 
SM2
-  [#25645] xmega header files broken #defines
-  [#25723] Realloc corrupts free list when growing into the next free item
-  [#25846] include/avr/power.h:628:1: error: missing binary operator before 
token "defined"
-  [#25925] <avr/boot.h> cannot be included on Xmega devices
-  [#25929] boot.h Fuse read not compatible with Tiny48/88.
-  [#25930] New IO-Headerfiles missing PXn Portpindefinitions
-  [#26188] Wrong or missing definition of SIGNATURE_X in iom644.h and others
-  [#26284] boot_lock_fuse_bits_get does not compile under gcc 4.3.X
-  [#26308] WDE defined as WDE3 in io90pwm3b.h and io90pwm2b.h
-  [#26767] XMEGA GPIO register name discrepancy
-  [#26809] Some common math constants missing in math.h
-  [#26840] Missing #define in iom32m1.h
-  [#26876] include io.h into fuse.h
-  [#27201] _WORDREGISTER in xmega headers does not work in C99 mode
-  [#27235] malloc: Several things go wrong
-  [#27242] realloc: serious error when size shrinks
-  [#27243] malloc: small error in comment
-  [#27367] RAMSTART missing in elder device header files
-  [#27434] Arguments of macros must be protected in parentheses
-  [#28575] Minor bug in iousb162.h - missing FUSE_ prefixes
-  [#28688] using_tools.dox fails to build due to extra underscore
-  [#28756] Bug in AVR libc 1.6.7 (power.h for 8-bit AVR)
-  [#28812] iotn48.h TWS# bits off by one
-  [#28584] iocanxx.h Add word definitions to iocanxx.h
-  [#28627] power.h ATMEGA32U2 clock_prescale_set() not available
-  [#28901] Xmega header files with missing definitions for GPIO_t and CPU_t
-  [#28574] Xmega D ADC struct missing registers
-  [#28582] XMEGA A3B, RTC32 not properly supported
-  [#28921] pointer to function > 128k flash
-  [#29502] literal error in iox128a1.h
-  [#29653] PUD bit missing for at90usb82
-  [#29950] ATtiny167 SPM_PAGESIZE Discrepancy
-  [#30018] Errors in include files
-  [#30085] memcpy_P on XMega does not clr NVM.CMD before copy
-  [#30104] power.h - Missing "power_usart1_/enable/disable()" functions for 
ATmega644
-  [#30148] XMEGA register discrepancy
-  [#30600] Missing processor spec - wdt.h include file
-  [#30597] Missing definition for ATmega16/32/64m1/c1
-  [#30475] SPM_PAGESIZE is incorrect in io90pwm3b.h and io90pwm2b.h
-  [#30552] Missing definition ADCW
-  [#30569] ATmega16U4/32U4 wrong bit definition
-  [#30669] Improve comment in stdiodemo
-  [#30735] bug in example twitest
-  [#31086] ATTINY88 RAMEND value not set to correct value in iotn88.h
-  [#30363] _delay_xx() functions in <util/delay.h> are broken
-  [#31990] PRPSC0 used in power.h for AT90PWM81 instead of PRPSCR
-  [#31873] power_aes_enable/disable() are commented in power.h for xmega 
devices
-
-* Other changes:
-
-  - Added 'avr35' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
-    supported for AT90USB82 and AT90USB162 devices. GCC 4.3 or above is 
-    necessary to use this. 
-
-  - Function vfscanf() is rewriten. The float point version is optimized
-    considerably: the expense of a stack was cut by half, and the size of
-    function has decreased approximately on 1KB. Opportunities of standard
-    and minimal versions are expanded, and their size has remained at a
-    former level.
-
-    Briefly:
-      . Restrictions of a float point format are eliminated.
-      . Conversion '%[' is present in standart version now.
-      . The minimal version differs from standard only absence of '%[' conv.
-      . The 'hh' type qualifier is added ('char *', C99).
-      . The maximal field width is increased up to 255 (65535 in float 
version).
-      . All known bugs are fixed.
-
-    New vfscanf() concedes old in:
-      . The size of the minimal and standard versions has increased for old
-      branches of compiler (less 4.1) and ancient chips (without MOVW).
-      . The maximum quantity of conversions now is limited (255).
-
-  - EEPROM functions are rewriten.  Now they are pure asm functions.  The
-    reading of long word or block is speed up.  New functions for 32-bit
-    words and floats are added.  The group of 'update' (burn only different
-    bytes) functions is added.  A set of Avr-libc bugs are fixed.
-
-  - Added support for XMEGA architectures.
-
-  - The Postscript documentation build has been removed in favour of
-    building only the PDF (and HTML and man page) versions.  PDF offers
-    the same printing quality as postscript at a smaller file size.
-    This also works around a bug in doxygen 1.5.7 where it appears to
-    be no longer possible to set GENERATE_HTML = NO.
-
-  - A sleeping BOD API was added to <avr/sleep.h>. This allows you to disable
-    the Brown Out Detector (BOD) before going to sleep, thereby reducing
-    power even further.
-
-  - The note about signbit() implementation is removed from documenatation.
-    The reason is that the GCC can replace it with inline code and the
-    nonzero value is unpredictable in such case.
-
-  - Signature API added in <avr/signature.h>.
-
-  - All functions are now placed in the .text.avr-libc section, and the 
-    floating point functions are placed in the .text.avr-libc.fplib section. 
This
-    allows the user the ability to relocate all avr-libc routines to a 
different
-    address using a custom linker script.
-
-  - The port/pin assignments of the HD44780 LCD controller in the
-    stdiodemo example can now be distributed across more than a single
-    AVR port.  The only remaining requirement is that all data bits
-    are assigned to a single port in ascending order.
-
-  - Added support for avrtiny10 architecture, to support the ATtiny10 Family.
-
-  - Added new headerfile: <avr/cpufunc.h>; currently contains _NOP() and
-    _MemoryBarrier().
-
-  - The twidemo can now optionally address 24C32 and larger EEPROMs
-    that require 16-bit word addressing.
-
-  - Add a "memory barrier" to the cli() and sei() macros.
-
-
-* New devices supported:
-
-  + ATxmega64D3
-  + ATxmega128D3
-  + ATxmega256D3
-  + ATxmega192A3
-  + ATxmega128A1
-  + ATxmega64A1
-  + ATmega32M1
-  + ATmega32C1
-  + ATmega32U4
-  + ATtiny167
-  + ATtiny13A
-  + ATmega32U6
-  + AT90SCR100
-  + ATtiny87
-  + ATxmega32A4
-  + ATmega16M1
-  + ATmega64C1
-  + ATmega64M1
-  + ATA6289
-  + AT90PWM81
-  + ATmega128RFA1
-  + ATxmega32D4
-  + ATxmega16A4
-  + ATxmega16D4
-  + ATmega16U4
-  + ATmega8U2
-  + ATmega16U2
-  + ATmega32U2
-  + ATxmega192D3
-  + ATtiny2313A
-  + ATtiny4313
-  + ATtiny24A
-  + ATtiny44A
-  + ATtiny261A
-  + ATtiny461A
-  + ATtiny861A
-  + ATmega644PA
-  + ATmega88PA
-  + ATmega16A
-  + ATmega64HVE
-  + ATmega169PA
-  + ATmega649P
-  + ATmega324PA
-  + ATmega16HVA2
-  + ATmega16HVB
-  + ATmega48A
-  + ATmega88A
-  + ATmega168A
-  + ATmega328
-  + ATmega164A
-  + ATmega324A
-  + ATmega644A
-  + ATmega165A
-  + ATmega169A
-  + ATmega645A
-  + ATmega6450A
-  + ATmega649A
-  + ATmega6490A
-  + ATmega6490P
-  + ATmega645P
-  + ATmega6450P
-  + ATmega329PA
-  + ATxmega128A1U
-  + ATxmega64A1U
-  + ATtiny4
-  + ATtiny5
-  + ATtiny9
-  + ATtiny10
-  + ATtiny20
-  + ATtiny40
-  + ATtiny84A
-  + ATmega325A
-  + ATmega3250A
-  + ATmega329A
-  + ATmega3290A
-  + M3000
-
-* Optimized functions:
-
-   eeprom_read_block
-   eeprom_read_dword
-   eeprom_read_word
-   eeprom_write_block
-   eeprom_write_dword
-   eeprom_write_word
-   strtod
-   setjmp
-   sqrt   (and callers: acos, asin and hypot)
-   sin, cos, tan:  minor in space
-   strlcat, strlcat_P
-   strlcpy, strlcpy_P
-   strtok, strtok_r
-
-* Contributed Patches:
-
-  [#6194] Twitest updated to handle larger EEPROM devices
-  [#6352] Far pointer library
-  [#6500] Reentrant code faq
-  [#6517] Pgmspace with float support
-  [#6555] malloc improvement
-  [#6649] sqrt.S in libm changes
-  [#6690] Shorten calculation of dallas 1-wire crc
-  [#6718] Optimize the EEPROM functions
-  [#6720] FAQ update. Add EEPROM section, baud rate section. Correct spelling.
-  [#6791] Minor fixes to stdio.h documentation
-  [#6878] eewr_byte.S update for patch #6718
-  [#6891] Add XMega software reset to the FAQ section on software reset
-  [#6895] Improved malloc behaviour when expanding used area
-  [#6897] Allow <util/setbaud.h> to be used with assembler source
-
-* New functions:
-
-   cbrt
-   eeprom_read_dword
-   eeprom_read_float
-   eeprom_update_block
-   eeprom_update_byte
-   eeprom_update_dword
-   eeprom_update_float
-   eeprom_update_word
-   eeprom_write_dword
-   eeprom_write_float
-   memccpy_P
-   strdup
-   strtok
-   strtok_P
-   strtok_rP
-   strlen_PF
-   strnlen_PF
-   memcpy_PF
-   strcpy_PF
-   strncpy_PF
-   strcat_PF
-   strlcat_PF
-   strncat_PF
-   strcmp_PF
-   strncmp_PF
-   strcasecmp_PF
-   strncasecmp_PF
-   strstr_PF
-   strlcpy_PF
-   memcmp_PF
-   
-
-*** Changes in avr-libc-1.6.0:
-
-* Main changes from avr-libc 1.4 to 1.6:
-
-  + The fplib/math library is completely rewritten. Now features of the IEEE
-  754 standard are supported all: negative zero, subnormals, Infs and NaNs.
-  It concerns both to base operations (arithmetic, comparison...), and to
-  all functions. Speed of performance is increased, sometimes considerably.
-  A number of mistakes (not reflected in the Bugs) which led severe losses
-  of accuracy for some arguments is corrected. A number of new functions is
-  added. It is necessary to note, that the new library concedes old under
-  the charge of flash memory a little.
-
-    Incompatibilities:
-
-    - Conversion from float to long (make similar to GCC/x86):  in case if
-    overflow was or if input is NaN return 0x80000000 for signed result and
-    return 0 for unsigned result. Negative input (not too big in absolute
-    value) is permissible for cast to unsigned long, for example: (unsigned
-    long)(-1.0) returns ULONG_MAX.
-
-    - The signbit() function: return 1 as nonzero value (make similar to
-    builtin GCC).
-
-    - Make frexp() similar to GCC/x86 in case of nonfinite arg: write 0 by
-    exponent pointer. Early Avr-libc's frexp() skips exponent storing in this
-    case. Make the NULL a legal address to skip a storing.
-
-  + Functions of numbers to ascii conversion are completely rewritten:
-  dtostre(), dtostrf() and printf() family. They more do not use float point
-  operations. Speed of int/float to ascii has increased in some times. For
-  printf() the stack usage is reduced.
-
-  + Test suite is added to the Avr-libc project.
-
-  + A few new util's headers: util/atomic.h, util/setbaud.h .
-
-* Bugs fixed:
-
-  [no-id]  iscntrl() return true for some values from 0x80 to 0xff.
-  [no-id]  Fix the examples installation for non-doc builds.
-  [no-id]  Fix the spelling of the OCR1A/B registers in ATtinyX4 devices.
-  [no-id]  LED1/2 don't work in the largedemo on an ATmega16.
-  [no-id]  Not defined SPM_PAGESIZE for ATtinyX4/X5/X61 and ATtiny2313 devices.
-  [no-id]  Typo in iomxx0_1.h: PRUSART3.
-  [no-id]  Make include/avr/sfr_defs.h -Wundef safe.
-  [no-id]  Make include/avr/eeprom.h -Wundef safe.
-  [no-id]  Fix the timing of the HD44780 driver in the stdiodemo.
-  [no-id]  Fix the sleep mode definitions for the ATtiny2313.
-  [no-id]  Exclude 64-bit types for -mint8.
-  [no-id]  Make documentation build work with doxygen 1.5.x
-  [#1929]  -Inf not detected
-  [#11511] NaN not generated correctly by division library
-  [#11820] dtostre: wrong output with percision =3
-  [#13330] NaN is recognized not always
-  [#15161] util/delay.h misses inline keyword (regression)
-  [#15193] incorrect definition of IVSEL bit in MCUCR register
-  [#15266] Function ldexp incorrectly processes overflow and underflow cases.
-  [#15494] Compile warning and errors if compiler flag -Wundef flag specified
-  [#15512] Bootloader macros not interrupt safe.
-  [#15519] AT90CAN* processors incorrectly identified as "AT90S family"
-  [#15522] Typo in iotn2313.h vector table
-  [#15559] Wrong macro for boot_page_write(address) and ATmega128
-  [#15574] unneeded compatibility break
-  [#15595] GPIOR0 misspelled for ATtiny25/45/85
-  [#15732] interrupt.h: ISR() incompatibility with gcc 3.4.5
-  [#15890] missing /devtools/gen-avr-lib-tree.sh
-  [#16039] Names in Pxy (i.e. PA0) style of ports pins for some devices are
-           not defined.
-  [#16125] HD44780 data bit assignment restrictive
-  [#16260] _crc16_update lacks C equivalent
-  [#16411] Add the 'used' attribute to all interrupt service routine macros.
-  [#16434] EMPTY_INTERRUPT has no misspelled vector checking
-  [#16441] eeprom.h should use __asm__
-  [#16868] depricated.h: outp() arguments order misprint
-  [#17068] wdt.h file: __AVR_ATmeg324P__ spelling mistake
-  [#17470] Add API for CLKPR register.
-  [#17551] Update documentation to point to issues with gcc4.1
-  [#17591] /avr-libc/libm/fplib/fp_split.S error return will fail for
-           3-Byte PC devices
-  [#17608] Add ISR_ALIAS() to avr/interrupt.h
-  [#18115] online documentation typo/bug avr/boot.h
-  [#18373] Bugs in Inline ASM documentacion
-  [#18385] SPM_PAGESIZE wrong value for ATmega164p and ATmega324p
-  [#18509] strtod.S crashes due to stack problem with atmega 2560
-  [#18662] rand() keeps returning the same value if seeded with 0
-  [#18686] AT90USB**** devices are absent in interrupt-verctor-names table
-  [#18688] vfscanf and vfprintf don't use malloc
-  [#18726] the dtostrf function description is missing in AVR-Libc's webpage
-  [#18903] ATmega644 register definitions for SPI and PRR (datasheet vs. 
-           iom*.h)
-  [#18915] PWM1X Bit missing for ATtiny261/461/861
-  [#18964] USART definitions *wrong* in iocanxx.h
-  [#18994] minor optimization possible to stdlib functions isspace(),
-           isprint(), and islower()
-  [#19009] Make <util/delay.h> issue a warning when optimizations are turned 
off
-  [#19050] gcrt1.S should call main rather than jumping to it
-  [#19060] PCMSKx registers transposed in header for attinyX61
-  [#19445] _malloc_heap_end does not follow _heap_end on m2561
-  [#19495] <avr/interrupts.h> documentation: fix inclusion of cli and sei 
macros
-  [#19496] Add documentation: how to build toolchain for Windows.
-  [#19650] avr-libc: wrong named bit in SFR of AT90PWMx
-  [#19666] AT90PWMx: Another patch for the include file (missing SFR)
-  [#19669] Need function to read signature row
-  [#19686] alloc declaration missing
-  [#19841] Error building 1.4 HEAD: undefined reference to 'exit'
-  [#20248] FAQ#3: clarify which registers are safe to be used
-  [#20276] power.h missing ATmega644Ppower_XXX_[en/dis]able() macros
-  [#20435] Bit name definitions for AT90PWM3
-  [#20530] Bug in sample code for early wdt disable
-  [#20650] Missing description of AVR specific C-preprocessor macros
-  [#20682] Bad bit name in avr/io2313.h - Sugestion
-  [#20843] Mega 2561 library
-  [#21174] assembly error with targets at90s1200, attiny11, attiny12,
-           and attiny28
-  [#21183] Fix Program Space example code.
-  [#21204] iotnx61.h PRR bits incorrect
-  [#21228] Missing 3rd clause in BSD license in documentation pages
-  [#21299] Duplicate register address in iotn48.h.
-  [#21411] Typographical error in 'iotn13.h'
-  [#21432] Incorrect timer interrupt handler names for ATtiny45
-  [#21434] Bit name definitions for AT90CANxxx
-  [#21444] Undocument -minit-stack
-  [#21484] Documentation build for avr/version.h does not susbstitute autoconf
-           macros
-  [#21749] AT90PWM316: _VECTORS_SIZE should be 128
-  [#21691] iomx8.h-> IVSEL and IVCE should not be available for ATmega48
-  [#21743] AT90PWM316 missing PSOC1 bit definitions
-  [#21626] Incorrect Bit Definition for ADC14 and ADC15 Digital Input Disable
-  [#21521] incorrect bit definitions in iotnx61.h
-  [#21840] RAMEND wrong for ATmega48P/88P/168P
-
-* Other changes:
-
-  - New Power Management API in <avr/power.h>. This provides C language
-    macros to manipulate the Power Reduction Register(s) and the System Clock
-    Prescaler register across multiple processors.
-
-  [patch #4611] sleep.h sleep_mode() not interrupt safe
-
-  - The simple demo has been modernized a bit.  Documentation now
-    generally refers to the ATmega8 rather than the AT90S2313, and
-    the #ifdef spaghetti has been moved out into iocompat.h.
-
-  - A new demo project ("largedemo") has been added.  It extends
-    the simple demo by adding some controls, and thereby touches
-    a good number of avr-libc concepts.  It has originally been
-    written for the ATmega16, but can also be run on an ATmega8
-    or a member of the ATmegaX8 family, as well as on an ATtiny2313.
-
-  - Another demo project ("stdiodemo") has been added.  It
-    demonstrates the setup of the standard IO facilities using
-    a practical small application.
-
-  - The demo projects now install their source code as part of
-    the documentation tree.
-
-  - The simple demo has been ported to ATmega8515, ATmega8535,
-    ATmega164P, ATmega165, ATmega169, ATmega324P, ATmega325,
-    ATmega3250, ATmega329, ATmega3290, ATmega640, ATmega644,
-    ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490,
-    ATmega1280, ATmega1281, ATtiny2313, ATtiny24, ATtiny25, ATtiny26,
-    ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85,
-    ATtiny861.
-
-  - More overhaul of the demo documentation, don't use the "squid"
-    cable for the largedemo as it is not part of the STK500.
-
-  - Integrate a copy of the license file into the documentation.
-
-  - Include an alphabetical index of all globals (functions,
-    macros, types, variables) into the documentation.
-
-  - Added 'avr25' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
-    supported for AT86RF401, ATtiny13, ATtiny2313, ATtiny24, ATtiny25, 
-    ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85 and 
-    ATtiny861 devices. GCC 4.2 or above is necessary to use this. 
-
-  - Add the benchmark page.
-
-  [patch #5756] New atomic.h header file (added as <util/atomic.h>)
-
-  [patch #5343] Add a util/setbaud.h "helper" file
-
-  [patch #6236] Improving _delay_us and _delay_ms
-
-  [patch #5644] New interrupt.h header file
-
-* New devices supported:
-
-  + ATtiny24
-  + ATtiny261
-  + ATtiny44
-  + ATtiny461
-  + ATtiny84
-  + ATtiny861
-  + ATmega406
-  + ATmega169 Rev. F
-  + AT90USB82
-  + AT90USB162
-  + AT90USB646
-  + AT90USB647
-  + AT90USB1286
-  + AT90USB1287
-  + ATmega48P
-  + ATmega88P
-  + ATmega164P (renamed from ATmega164)
-  + ATmega168P
-  + ATmega324P (renamed from ATmega324)
-  + ATmega328P
-  + ATmega644P
-  + ATmega1284P
-  + ATmega165P
-  + ATmega169P
-  + ATmega2560 [patch #4461]
-  + ATmega2561 [patch #4461]
-  + ATmega325P
-  + ATmega3250P
-  + ATmega329P
-  + ATmega3290P
-  + AT90PWM1
-  + ATmega8HVA
-  + ATmega16HVA
-  + ATmega32HVB
-  + AT90PWM216
-  + AT90PWM316
-  + ATtiny43U
-  + ATtiny48
-  + ATtiny88
-  + AT90PWM2B
-  + AT90PWM3B
-
-* New functions: 
-
-   strstr_P (Contributed by Werner Boellmann)
-   round
-   lround
-   lrint
-
-* Optimized functions:
-
-   dtostre
-
-*** Changes in avr-libc-1.4.0:
-
-* Major API changes:
-
-  - The INTERRUPT() macro has been deprecated, and it will be
-    removed in a future version.  Use __attribute__((interrupt))
-    explicitly if this functionality is really needed.
-
-  - A new ISR() macro has been added, and is now the preferred
-    for to introduce an interrupt service routine.  It is
-    equivalent to the old SIGNAL() macro, which might become
-    deprecated in a future version.
-
-  - A new header file, <compat/deprecated.h> has been established.
-    Its purpose is to collect deprecated items from older versions of
-    the library, starting out with the enable_external_int(),
-    timer_enable_int(), and INTERRUPT() macros/functions, as well as
-    the old obsoleted inp/outp/sbi/cbi macros.
-
-  - A new include file subdirectory named "util/" has been created.
-    The files <compat/twi.h>, <avr/crc16.h>, <avr/delay.h>, and
-    <avr/parity.h> have been moved into the new util/ subdirectory.
-
-  - A new set of interrupt vector names has been added, closely
-    matching the names given in the datasheet, and more compatible to
-    other compilers available for the AVR platform.  The table of
-    interrupt vector names in the documentation is now automatically
-    generated, and explicitly mentions the MCU type for each vector
-    name.
-
-  - The standard IO facilities API has been enhanced
-
-    . The backend functions put and get that are passed to fdevopen()
-      during the setup of a stream now take the stream itself as an
-      additional argument.
-      By defining the macro __STDIO_FDEVOPEN_COMPAT_12 before
-      including <stdio.h>, an fdevopen() function prototype will be
-      declared that is backwards-compatible with avr-libc version
-      1.2 and before.
-    . It is possible to tie user data to a stream using
-      fdev_set_udata(), and to retrieve them using fdev_get_udata().
-      Together with the additional argument to the backend functions,
-      these functions can now e.g. keep track of internal user state,
-      or distinguish two different devices using the same backend
-      function.
-    . The get backend function can now return _FDEV_EOF to indicate an
-      end-of-file condition, in addition to _FDEV_ERR for an error
-      condition.  This will affect the internal state that can be
-      queried using the standard feof() and ferror() functions.
-    . A new macro fdev_setup_stream() is provided to setup a
-      user-supplied stream without the need to call fdevopen(), and thus
-      without requiring malloc().  A similar macro FDEV_SETUP_STREAM()
-      exists that can be used to initialized a FILE object.  The
-      floating-point implementations of vfscanf() and vfprintf() now
-      allocate their conversion buffer on the stack, so they do not need
-      malloc() anymore either.
-
-  - An API has been added to track the library version number.  See the
-    documentation of the new header file <avr/version.h>.
-
-* Bugs fixed:
-
-  [#3573] Make local symbols in .S files truely local
-  [#12324] overview: boot_page_write_safe, etc.
-  [#12333] Standard requires libstdc to define vprintf and vscanf
-  [#12495] about Busy-wait delay loops(document)
-  [#12496] about set_sleep_mode() and tiny26/tiny2313
-  [#12735] No support for AT94K devices in sleep.h
-  [#12739] Gcc assumes that target libc provides ffs function
-  [#12775] Possible Bug in sscanf on string end
-  [#13340] Math lib documentation/lib mismatch
-  [#13557] small typo in avr-libc-user-manual-1.2.3
-  [#14224] _delay_ms() not inlining if called more than once in a unit
-  [#14241] 'eeprom_is_ready' is not compiled with ATmega48
-  [#14262] avr-libc documentation error about .init sections
-  [#14266] use __extension__ in avr-libc header files
-  [#14327] wdt_disable() missing a cli
-  [#14378] EEPROM library d'not support at86rf401 device
-  [#14380] configure/make work only in source directory
-  [#14433] Improve documentation of <avr/delay.h>
-  [#14486] some macros from boot.h doesn't compile correctly
-  [#14503] strnlen_P is wrong with classic AVRs
-  [#14798] several IO registers definition issue in header files
-  [#14852] fp pow function broken for negative x
-
-* Other changes:
-
-  [patch #3592] speedup tanh function in libm
-  [patch #3750] Allow passing user data to stdio fdevopen() get and
-                put methods.  (This is part of the API changes
-                mentioned above.)
-  [patch #3780]        <assert.h> header
-  [patch #3781] add dummy fflush() to <stdio.h>
-  [patch #3782] modernize <stdint.h>
-  [patch #3912] Fix ctype.S linker error due to asm branches out
-                of range
-  [patch #3925] Dallas iButton 8-bit CRC
-  [patch #4087] C99 conformal headers stdint.h and inttypes.h
-  [patch #4505] Unified interrupt vector names in header files
-  [patch #4557] Adds to the fplib usage of MUL instruction 
-                in group avr4; avr5 devices
-  [patch #4608] rpm spec file update
-  [patch #4622] unify doc file location in rpms
-
-  - Update the build system to recent versions of autoconf/automake;
-    the old "doconf" and "domake" scripts are gone now, "reconf" has
-    been renamed to "bootstrap".
-  - Update the documentation system to doxygen >= 1.4.1.
-  - Major overhaul of the documentation, new layout of the HTML pages,
-    several clarifications and additions.
-  - Add support for the following new devices (depending on the ability
-    of the compiler/binutils to handle them):
-    . AT90CAN32/64
-    . AT90PWM2(B)/3(B)
-    . ATmega329/3290/649/6490
-    . ATtiny25/45/85
-    . ATmega164/324/644
-    . ATmega640/1280/1281
-  - The library is now compiled with -Os for avr3 and avr5 MCUs (i.e.
-    for those with > 8 KB of ROM); used to be -O3 before.
-
-* New string functions. Contributed by Dmitry Xmelkov.
-
-  ffs
-  ffsl
-  ffsll
-  _FFS (macro)
-
-* Optimized functions.
-
-  misc/itoa
-  misc/ltoa
-  misc/utoa
-  misc/ultoa
-  stdlib/longjmp
-  string/memchr
-  string/memccpy
-  string/strchr
-  string/strrchr
-  string/strsep
-  string/strstr
-
-*** Changes since avr-libc-1.2.4:
-
-* Bugs fixed:
-
-  [no-id]  EEPROM handling not working for AT90CAN128 ATmega48 ATmega88
-          ATmega165 ATmega168 ATmega169 ATmega325 ATmega3250 ATmega645
-          ATmega6450
-  [#12646] strtod returns error for valid input (patch#4137)
-  [#13341] Remove ADHSM bit from header files.
-
-* Other improvements:
-
-  [patch#4189] Document replacement for sbi/cbi instructions
-
-* boot.h: implement boot_lock_fuse_bits_get() plus macros for the
-          respective addresses (low/high/ext fuse, lock bits)
-
-
-*** Changes since avr-libc-1.2.3:
-
-* Bugs fixed:
-
-  [no-id]  Work around a bug in gas that made the weak symbol __stack
-           fixed inside gcrt1.S (since the assembler already inserted
-           its value).
-  [no-id]  Modify the doxygen build system to cope with artefacts from
-           recent versions of doxygen and (pdfelatex-based) LaTeX.
-  [#12033] macros.inc need to be protected from multiple inclusion.
-  [#12040] overview: sbi in FAQ
-  [#12134] ADC register name definitions
-  [#12422] Add new bit definitions for LCDCCR register in iom169.h.
-  [#12448] Fix bit definition for SJW0 in iocan128.h
-  [#12785] Fix documenation for log10() function in math.h.
-  [#12955] Signal name misprints: SIG_COMPERATOR in iom169.h,
-           SIG_EPROM_READY in iotn26.h
-  [#12993] Signal "__EICR" redefined warning ATmega8
-  [#13290] avr/io.h EEAR def is flawed for the Mega48
-  [#13327] Fix bit definition for UCSZ02 in iom325.h, iom3250.h,
-           iom645.h, iom6450.h
-  [#13678] The _wdt_write(value) macro in wdt.h doesn't work with
-           the ATmega325.(also with ATmega3250, ATmega645, ATmega6450,
-           ATmega165).
-
-* demo.c extended for ATmega16
-
-*** Changes since avr-libc-1.2.2:
-
-* Bugs fixed:
-
-  [#11987] sscanf parsing problem : leading zero ignored in %u
-
-*** Changes since avr-libc-1.2.1:
-
-* Bugs fixed:
-
-  [#11805] Fix call to __fp_cosinus in sin().
-  [#11817] Replace SYSCLK with F_CPU in twitest example.
-  [#11868] realloc doesn't work correctly on block at end of freelist
-           when growing
-  [#11898] Change optimisation level for building printf libraries to -Os.
-
-
-*** Changes since avr-libc-1.2.0:
-
-* Bugs fixed:
-
-  [no-id]  Prefix all internal global symbols in libm with __fp_ so
-           they do not collide with the application namespace.
-  [#4101]  setjmp/longjmp destroy changes in global registers.
-  [#11479] Add missing pin definitions for iotn16.h.
-  [#11486] Put the port bit defintions back in for mega16.
-  [#11494] strtol() return wrong value in the underflow case
-  [#11505] Remove doxygen comment about the deprecated inp/outp items.
-  [#11510] Abstract the change enable bit in wdt.h for mega32.
-  [#11522] Rewrite wdt_disable() to match datasheet algorithm.
-  [#11684] realloc overwrites first to bytes of memory block when shrinking
-  [patch #3618] Optimization strtol(), a little (related to bug #11494).
-  [#11732] Update doc/examples/progmem.c to use the latest API.
-
-* Extend stdio and pmstring APIs:
-
-Implement patch #3516: printf: Handling of argument strings from
-program memory
-
-The %S format can now be used to print strings that are located in
-program-space memory (aka. ROM).
-
-As a prerequisite for this, the function strnlen_P() has been added
-which is similar to strnlen() except that it takes a pointer to a
-program-space string.
-
-*** Changes in avr-libc-1.2:
-
-* Bugs fixed:
-
-  [no-id] Fix TICIE1 value in usb header files.
-  [no-id] Fix bug introduced in fix for bug #7802 (missing parens).
-  [no-id] Move ATtiny2313 and ATtiny13 from avr4 to avr2 (by now).
-  [#2143] malloc() routines chunk smaller than requested
-  [#5454] Inline functions results in undefined reference when optimize level 0
-          is used.
-  [#5799] error(?) in iom162.h
-  [#2233] Documentation issues with inline asm
-  [#6352] Sleep mode for ATmega162, ATmega161, and ATmega8515 
-  [#7469] "Problem" by using the library function "boot_lock_bits_set"
-  [#7556] printf and friends improperly handle non-null terminated strings when
-          a %s argument has a precision.
-  [#7802] vfscanf problem with unsigned long (patch #2554)
-  [#7989] dtostrf() destroys string pointer registers?
-  [#8119] _wdt_write macro in wdt.h doesn't work with ATmega169
-  [#8391] Fuse mask in boot.h wrong?
-          NOTE: boot_lock_bits_set() was broken. Please see the new
-          documentation for examples of how the new version works.
-  [#8452] some SFR and bit names in iom169.h are incorrect
-          NOTE: Where possible, the old names are retained to avoid breaking
-          existing code, but the OCR1A and OCR1B names where just plain wrong
-          so they have been changed and the incorrect names (OCRA1 and OCRB1)
-          are undefined.
-  [#8649] sfr_defs.h: missed _SFR_BYTE() in bit_is_set/clear
-  [#9345] Zero-Padding on vfprintf
-  [#10150] Update release versions compatible with avr-libc and instructions.
-  [#10489] Sleep mode for atmega48/88/168 family 
-  [#10733] Fix bit identifer ADFR to ADATE in mega64.
-  [#10828] Fix licenses on files to have same BSD license.
-  [#11242] Add the EEARH register definition for the mega48.
-  [#11275] fdevopen() should document its use of malloc()
-  [#11315] Add USART* signal names to match datasheet for mega32 and mega16.
-  [#11405] Add USART* signal names to match datasheet for mega128.
-  [#11418] Add PRR register and bit definitions for mega169.
-  [#11425] sleep.h missing semicolon
-
-* Remove deprecated items:
-  + obsolete headers from the base include directory (moved to the avr/
-    subdirectory long ago)
-  + deprecated macros and functions from
-    . <avr/eeprom.h> (eeprom_rb, eeprom_rw, eeprom_wb),
-    . <avr/io.h>  (cbi, sbi, inb, outb, inw, outw, inp, outp, BV),
-    . <avr/pgmspace.h> (PRG_RDB).
-  + . <avr/timer.h> removed completely.
-
-* Moved header files:
-
-  + <avr/ina90.h> moved to <compat/ina90.h>
-  + <avr/twi.h> moved to <compat/twi.h>
-
-* New devices supported:
-
-  + ATmega165
-  + ATmega325
-  + ATmega3250
-  + ATmega645
-  + ATmega6450
-  + ATmega48
-  + ATmega88
-  + ATmega168
-  + ATtiny13
-  + ATtiny2313
-  + AT90CAN128
-
-* Pin names for ports are now consistent for all devices.
-
-* dtostrf() now uses movw where possible
-
-* realloc() has been implemented.
-
-* Extend pgmspace API.
-
-The pgmspace API has had the following macros added to allow accessing of
-unsigned 32-bit values:
-
-  pgm_read_dword_near
-  pgm_read_dword_far
-  pgm_read_dword
-
-* Change boot API.
-
-The boot API internals have changed such that it is not compatible with the
-1.0.x API.
-
-These macros have been changed so that they no longer wait for SPM and EEPROM
-operations to complete. It turns out that doing those checks all the time is
-not needed and tends to bloat the code. Removing the checks allows you to
-write more compact code (see the example in avr/boot.h).
-
-  boot_page_fill
-  boot_page_erase
-  boot_page_write
-  boot_rww_enable
-  boot_lock_bits_set
-
-If you want the old behaviour (1.0.x compatible), use these new macros:
-
-  boot_page_fill_safe
-  boot_page_erase_safe
-  boot_page_write_safe
-  boot_rww_enable_safe
-  boot_lock_bits_set_safe
-
-* Extend eeprom API.
-
-New macro:
-  eeprom_busy_wait
-
-* Extend crc16 API.
-
-New functions:
-  _crc_xmodem_update
-  _crc_ccitt_update
-
-* Extend stdio API.
-
-New functions:
-  vfprintf_P
-  vfscanf_P
-  vsprintf
-  vsprintf_P
-  vsnprintf
-  vsnprintf_P
-
-* Extend malloc API.
-
-Implement realloc().
-
-* Extend delay API (<avr/delay.h>).
-
-Implement inline functions for specifying delays in microseconds, or
-milliseconds directly (based on the macro F_CPU specifying the CPU
-clock frequency).
-
-* Documentation changes:
-
-  + Use newer Doxygen.
-  + Many fixes and added documentation.
-  + Unix-style man pages are generated now when doc generation has been
-    enabled in ./configure
-
-* Optimize slightly strtol and strtoul functions.
-
-* Unified copyright.
-
-All of the avr-libc files are now distributed under a single license.
-All of the authors of the files agreed to this step.  The new license
-is a 3-clause simplified ``BSD-style'' license which is believed to be
-fully compatible with the GPL on one hand, yet imposes as minimal
-restrictions as possible for any kind of commercial use in
-applications based on avr-libc.
-
-To build the documentation, doxygen-1.3.4 or newer is strongly recommended.
-
-*** Changes in avr-libc-1.0:
-
-* Move source to cvs repositiory at http://savannah.gnu.org/projects/avr-libc
-
-Anonymous cvs access to the source is now available. There is also a mailing
-list set up for discussion of development of avr-libc.
-
-* License changes.
-
-All the files in the project now are covered by a modified BSD license. This 
-allows royalty free use of the library in commerical products. All of the 
-public domain files in the project have been switched to the new license and
-copyright given to the contributors of the files.
-
-There were some files taken from GNU GPL'd projects which were removed from
-avr-libc to simplify the licensing. The removed files only supplied alternate
-implementations, so nothing was lost by their removal.
-
-* Requires latest binutils and gcc
-
-Marek did some fairly major work with binutils and gcc to make adding support
-for new devices easier. His changes in those tools required changes to
-avr-libc which make it incompatible with older versions of binutils and gcc.
-Gcc versions >= 3.3 and binutils versions >= 2.13 are required.
-
-* New malloc implementation.
-
-Joerg Wunsch has supplied an improved malloc implementation which is less
-prone to fragmentation.
-
-* Documentation!
-
-Joerg Wunsch and Ted Roth and have been working on using the doxygen program to
-embed documentation comments into source code. Additionally, Harald Kipp's 
-inline asm cookbook and Rich Neswold's Avr Tools document have been merged into
-the user manual. The goal is to have a single place for all the documentation
-a user would need to get started developing for AVR microcontrollers using
-the GNU development tool chain.
-
-The latest documentation is available online at
-  http://www.freesoftware.fsf.org/avr-libc/
-
-* I/O registers accessible directly in C expressions
-
-You can now do this in your code:
-  PORTA |= 0x02;
-
-See the "Special Function Registers" documentation for details. This method is
-preferred over the use of the deprecated inp(), inb(), inw(), outp(), outb()
-and outw() functions.
-
-* New devices supported
-
-mega128
-mega169
-mega16
-mega32
-mega64 [untested]
-mega8515 [untested]
-mega8535 [untested]
-tiny26
-76c711
-43usb320
-43usb355
-86rf401
-
-* Improved trigonometrical functions:
-
-Reiner Patommel provided complete rewrites for asin(), atan() and atan2()
-that feature a better (for some argument ranges even much better)
-accuracy than the previous versions.  Note that since acos() uses asin(),
-it also benefits from this.
-
-* Incompatibilities with previous version.
-
-The arguments for outb()/outw() have been reversed.
-  (value,port) -> (port,value)
-
-* New pgmspace.h API.
-
-Changed function names and added new functions to read the Program Space
-FLASH. Added new functions to read 16-bit (word) values. The new API should 
-also clear up problems with reading data from devices with > 64K of FLASH.
-
-The API now includes:
-pgm_read_byte       (maps to the *_near function below)
-pgm_read_word       (maps to the *_near function below)
-pgm_read_byte_near
-pgm_read_word_near
-pgm_read_byte_far
-pgm_read_word_far
-
-
-* New bootloader support API.
-
-#include <avr/boot.h>
-
-This provides bootloader support functions to those processors that have 
-builtin bootloader support.
-
-* inb / outb / inw / outw / cbi / sbi macros are deprecated.
-
-* New string functions and optimized string functions.
-
-strlcpy   (optimized)
-strlcat   (optimized)
-strsep    (new)
-strtok_r  (new)
-strlcat_P (new)
-strlcpy_P (new)
-strncat_P (new)
-
-Contributed by Reiner Patommel with some work on strlcpy, strlcat by
-Eric Weddington.
-
-* New eeprom functions by Artur Lipowski <address@hidden>
-
-eeprom_write_word
-eeprom_write_block
-
-
-*** Changes up to avr-libc-20020203:
-
-See the ChangeLog file up to 2002-02-03 for details.
-

Copied: tags/avr-libc-1_7_1-release/NEWS (from rev 2215, trunk/avr-libc/NEWS)
===================================================================
--- tags/avr-libc-1_7_1-release/NEWS                            (rev 0)
+++ tags/avr-libc-1_7_1-release/NEWS    2011-02-16 21:36:51 UTC (rev 2216)
@@ -0,0 +1,1139 @@
+*** Changes in avr-libc-1.7.1:
+
+* Bugs fixed:
+
+  [Atmel: #11793] XMEGA A devices: 4096-cycle DAC refresh interval setting has 
wrong name
+  [Atmel: #12314] Hi-Res(CTRLA) and AWex (FDEMASK)
+  [Atmel: #12536] Remove CALCTRL in xmega header files.
+  [no-id] Fix wrong vector table size for ATmega168A devices.
+  [#29235] power.h - warning: comma at end of enumerator list
+  [#30783] Missing prototype in power.h
+  [#31270] Stale link to Philips (now NXP) I2C specification/users manual
+
+* New devices supported:
+
+  ATTiny84a
+  ATMega16HVB RevB
+  ATMega32HVB RevB
+
+* Contributed Patches:
+
+* Other changes:
+
+
+*** Changes in avr-libc-1.7.0:
+
+* Bugs fixed:
+  [Atmel: #7159] the memory location of tccr0b is mixed with tccr0a for 
tiny48/88
+  [no-id] Fix CLKPCE bit value to be 7.
+  [no-id] inlining failed in call to '_delay_ms': function body not available
+  [no-id] malloc() could allocate memory beyond the limits of heap
+  [no-id] xmega header file updates.
+  [no-id] Enable ATmega128RFA1 in <avr/power.h>
+  [no-id] longjmp() writes to EIND register, it is forbidden by AVR-GCC's API
+  [no-id] Define _VECTORS_SIZE in iom3000.h
+  [no-id] Redefine __tmp_reg__ and __zer_reg__ for AVR TINY. 
+  [AVR Tools: #9724] Error in ATtiny13A include file, PRR register
+  [sourceforge.net: #1836849] Multiplication does not work for AT90USB162
+  [sourceforge.net: #1883630] ATmegaXX4 - USART0 and USART1 additional bits 
aliases
+  [sourceforge.net: #1910885] Typo in io90pwm3b.h
+  [sourceforge.net: #1913681] Missing INT3 define in io90pwm3b.h
+  [sourceforge.net: #1957780] New 'FUSES-support' gives error in c++ files
+  [sourceforge.net: #1969436] Wrong flash size for ATmega32U4
+  [sourceforge.net: #2010688] ATtiny48 SPSR register bits
+  [sourceforge.net: #2012448] ATmega6450 USART Interrupts
+  [sourceforge.net: #2016128] Incorrect ATMega32[c1|m1] Header Entries
+  [sourceforge.net: #2018957] Wrong SPM_PAGESIZE for mega1284P
+  [sourceforge.net: #2033993] User manual: data symbol spec incorrect
+  [sourceforge.net: #2305703] iom162.h ASSR bitdef, typo?
+  [sourceforge.net: #2411516] Error/Bug in the iotn88.h file
+  [sourceforge.net: #2420567] ATmega329P missing in sleep.h
+  [sourceforge.net: #2693898] ATmega32U6 missing in power.h
+  [sourceforge.net: #2738926] avr/eeprom.h EEGET and EEPUT
+  [sourceforge.net: #2812125] ATmega16U4 missing in power.h 
+  [sourceforge.net: #2913419] Misspelled Structure Element - xmega
+  [#3485]  Using float arithmetic without linking with -lm result in incorrect 
code
+  [#19079] sscanf %s eats 1 char too much
+  [#19494] sfr_defs.h documentation: Remove references to deprecated macros.
+  [#21410] Incorrect use of 16-bit eeprom addresses in devices with 8-Bit 
address registers
+  [#21621] Allow autoconf 2.61
+  [#21622] Support building in a subdirectory
+  [#21623] boot.h: Use the "z" register constraint  
+  [#21869] Multiple defines in iotn2313.h
+  [#21872] __floatunsisf/undisf incorrectly named
+  [#21905] scanf: float conversion ignores the suppression symbol
+  [#21906] scanf: float conversion, wrong width count in case of sign or 
exponent
+  [#21931] Wrong fuses defined for the ATMEGA88/168
+  [#21935] Typo in avr-ar example avr-as should be avr-ar
+  [#21995] pgm_read_xxxx() does not use enhanced LPM instruction
+  [#21958] UBRR0/UBRR1 SFR is redefined for ATmegaXX8p and atmega1284p devices
+  [#21962] PSYNC1_0 a PSYNC1_1 bits not defined for AT90PWM3B and AT90PWM316 
devices
+  [#21986] Typo in iotn13.h
+  [#22016] Typo in iotn2313.h: SIG_OUTPUT_COPMARE0A
+  [#22119] Misleading statement in FAQ
+  [#22153] setjmp.o is wrong in libc.a (1.6.1) for avr's with SPH
+  [#22240] Add EEPROM Page Size to header files
+  [#22276] wdt_reset fails with devices with large WDTCSR addresses
+  [#22377] Wrong XRAMEND for some recent ioXXX.h header files.
+  [#22387] Missing EIMSK and __EEPROM_REG_LOCATIONS__ in iom168p.h
+  [#22390] Unclear note about function pointers
+  [#22447] Summary of iom?8p.h header updates needed
+  [#22493] Typo in iom1284p.h.
+  [#22540] Adding signature bytes to header files
+  [#22548] Missing IVCE and IVSEL in iom328p.h
+  [#22568] Missing EEPROM_REG_LOCATIONS in iom328p.h
+  [#22572] Documentation FAQ example proposal
+  [#22642] AT90USB162 and AT90USB82 not supported in <avr/power.h>
+  [#22643] math.h c99 incompability
+  [#22666] io90pwm3b.h errors
+  [#22785] ATMega644P Support Missing from avr/include/avr/sleep.h
+  [#22828] eeprom_write_block(): incompatibility in args order
+  [#22834] ATmega164P/324P/644P/1284P lack BODS/BODSE bits in MCUCR
+  [#22870] Error in wdt.h and ATmega164P
+  [#22877] Fuse information wrong for xmega devices.
+  [#22878] eeprom_*_word/dword/block cause hang in ATmega256x
+  [#23004] Watchdog enable docu only generated for Xmega series
+  [#23032] Define PORTxn, PINxn, DDxn bit names in iomxx4.h.
+  [#23166] atmega328p does not have SPMEN
+  [#23261] AT90USB162 and AT90USB82 missing power_all_[enable,disable]() in 
power.h
+  [#23409] Provide an implementation for strtok()
+  [#23546] FAQ documentation symbol seems wrong
+  [#23554] Wrong bit values in iom32u4.h
+  [#23677] Request for cbrt() and strdup to be added to libc
+  [#23703] eeprom write functions optimisation
+  [#23774] Using some defines from avr/fuse.h produces warning
+  [#23850] ATMega8 does not have MCUSR defined
+  [#23871] clock_prescale_set() not available for ATmega32U4
+  [#23959] Small typo in deprecated documentation
+  [#23969] eeprom_read_byte() throws interrupt EE_READY although EERIE is 
cleared, controller resets
+  [#24207] Example in inttypes.h is wrong
+  [#24446] _attribute_ should be __attribute__ (with double underscores)
+  [#24762] 1.6.3 wdt.h compile-time bug
+  [#24890] Small error in libm source fp_rempio2.S
+  [#25048] eeprom.h will not compile as c++ code.
+  [#25120] pgm_read_*_far() functions cause incorrect usage of the Z pointer 
for RAM access in ATxmega series
+  [#25131] Incorrect definition of default lfuse bits for ATTiny2313
+  [#25261] TWIHSR spelling deviates from XML file in AVR Studio 4.15
+  [#25535] Nonexistent bit definitions in iotn88.h/iotn48.h AREFD REFS1 RWWSB 
SM2
+  [#25645] xmega header files broken #defines
+  [#25723] Realloc corrupts free list when growing into the next free item
+  [#25846] include/avr/power.h:628:1: error: missing binary operator before 
token "defined"
+  [#25925] <avr/boot.h> cannot be included on Xmega devices
+  [#25929] boot.h Fuse read not compatible with Tiny48/88.
+  [#25930] New IO-Headerfiles missing PXn Portpindefinitions
+  [#26188] Wrong or missing definition of SIGNATURE_X in iom644.h and others
+  [#26284] boot_lock_fuse_bits_get does not compile under gcc 4.3.X
+  [#26308] WDE defined as WDE3 in io90pwm3b.h and io90pwm2b.h
+  [#26767] XMEGA GPIO register name discrepancy
+  [#26809] Some common math constants missing in math.h
+  [#26840] Missing #define in iom32m1.h
+  [#26876] include io.h into fuse.h
+  [#27201] _WORDREGISTER in xmega headers does not work in C99 mode
+  [#27235] malloc: Several things go wrong
+  [#27242] realloc: serious error when size shrinks
+  [#27243] malloc: small error in comment
+  [#27367] RAMSTART missing in elder device header files
+  [#27434] Arguments of macros must be protected in parentheses
+  [#28575] Minor bug in iousb162.h - missing FUSE_ prefixes
+  [#28688] using_tools.dox fails to build due to extra underscore
+  [#28756] Bug in AVR libc 1.6.7 (power.h for 8-bit AVR)
+  [#28812] iotn48.h TWS# bits off by one
+  [#28584] iocanxx.h Add word definitions to iocanxx.h
+  [#28627] power.h ATMEGA32U2 clock_prescale_set() not available
+  [#28901] Xmega header files with missing definitions for GPIO_t and CPU_t
+  [#28574] Xmega D ADC struct missing registers
+  [#28582] XMEGA A3B, RTC32 not properly supported
+  [#28921] pointer to function > 128k flash
+  [#29502] literal error in iox128a1.h
+  [#29653] PUD bit missing for at90usb82
+  [#29950] ATtiny167 SPM_PAGESIZE Discrepancy
+  [#30018] Errors in include files
+  [#30085] memcpy_P on XMega does not clr NVM.CMD before copy
+  [#30104] power.h - Missing "power_usart1_/enable/disable()" functions for 
ATmega644
+  [#30148] XMEGA register discrepancy
+  [#30600] Missing processor spec - wdt.h include file
+  [#30597] Missing definition for ATmega16/32/64m1/c1
+  [#30475] SPM_PAGESIZE is incorrect in io90pwm3b.h and io90pwm2b.h
+  [#30552] Missing definition ADCW
+  [#30569] ATmega16U4/32U4 wrong bit definition
+  [#30669] Improve comment in stdiodemo
+  [#30735] bug in example twitest
+  [#31086] ATTINY88 RAMEND value not set to correct value in iotn88.h
+  [#30363] _delay_xx() functions in <util/delay.h> are broken
+  [#31990] PRPSC0 used in power.h for AT90PWM81 instead of PRPSCR
+  [#31873] power_aes_enable/disable() are commented in power.h for xmega 
devices
+
+* Other changes:
+
+  - Added 'avr35' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
+    supported for AT90USB82 and AT90USB162 devices. GCC 4.3 or above is 
+    necessary to use this. 
+
+  - Function vfscanf() is rewriten. The float point version is optimized
+    considerably: the expense of a stack was cut by half, and the size of
+    function has decreased approximately on 1KB. Opportunities of standard
+    and minimal versions are expanded, and their size has remained at a
+    former level.
+
+    Briefly:
+      . Restrictions of a float point format are eliminated.
+      . Conversion '%[' is present in standart version now.
+      . The minimal version differs from standard only absence of '%[' conv.
+      . The 'hh' type qualifier is added ('char *', C99).
+      . The maximal field width is increased up to 255 (65535 in float 
version).
+      . All known bugs are fixed.
+
+    New vfscanf() concedes old in:
+      . The size of the minimal and standard versions has increased for old
+      branches of compiler (less 4.1) and ancient chips (without MOVW).
+      . The maximum quantity of conversions now is limited (255).
+
+  - EEPROM functions are rewriten.  Now they are pure asm functions.  The
+    reading of long word or block is speed up.  New functions for 32-bit
+    words and floats are added.  The group of 'update' (burn only different
+    bytes) functions is added.  A set of Avr-libc bugs are fixed.
+
+  - Added support for XMEGA architectures.
+
+  - The Postscript documentation build has been removed in favour of
+    building only the PDF (and HTML and man page) versions.  PDF offers
+    the same printing quality as postscript at a smaller file size.
+    This also works around a bug in doxygen 1.5.7 where it appears to
+    be no longer possible to set GENERATE_HTML = NO.
+
+  - A sleeping BOD API was added to <avr/sleep.h>. This allows you to disable
+    the Brown Out Detector (BOD) before going to sleep, thereby reducing
+    power even further.
+
+  - The note about signbit() implementation is removed from documenatation.
+    The reason is that the GCC can replace it with inline code and the
+    nonzero value is unpredictable in such case.
+
+  - Signature API added in <avr/signature.h>.
+
+  - All functions are now placed in the .text.avr-libc section, and the 
+    floating point functions are placed in the .text.avr-libc.fplib section. 
This
+    allows the user the ability to relocate all avr-libc routines to a 
different
+    address using a custom linker script.
+
+  - The port/pin assignments of the HD44780 LCD controller in the
+    stdiodemo example can now be distributed across more than a single
+    AVR port.  The only remaining requirement is that all data bits
+    are assigned to a single port in ascending order.
+
+  - Added support for avrtiny10 architecture, to support the ATtiny10 Family.
+
+  - Added new headerfile: <avr/cpufunc.h>; currently contains _NOP() and
+    _MemoryBarrier().
+
+  - The twidemo can now optionally address 24C32 and larger EEPROMs
+    that require 16-bit word addressing.
+
+  - Add a "memory barrier" to the cli() and sei() macros.
+
+
+* New devices supported:
+
+  + ATxmega64D3
+  + ATxmega128D3
+  + ATxmega256D3
+  + ATxmega192A3
+  + ATxmega128A1
+  + ATxmega64A1
+  + ATmega32M1
+  + ATmega32C1
+  + ATmega32U4
+  + ATtiny167
+  + ATtiny13A
+  + ATmega32U6
+  + AT90SCR100
+  + ATtiny87
+  + ATxmega32A4
+  + ATmega16M1
+  + ATmega64C1
+  + ATmega64M1
+  + ATA6289
+  + AT90PWM81
+  + ATmega128RFA1
+  + ATxmega32D4
+  + ATxmega16A4
+  + ATxmega16D4
+  + ATmega16U4
+  + ATmega8U2
+  + ATmega16U2
+  + ATmega32U2
+  + ATxmega192D3
+  + ATtiny2313A
+  + ATtiny4313
+  + ATtiny24A
+  + ATtiny44A
+  + ATtiny261A
+  + ATtiny461A
+  + ATtiny861A
+  + ATmega644PA
+  + ATmega88PA
+  + ATmega16A
+  + ATmega64HVE
+  + ATmega169PA
+  + ATmega649P
+  + ATmega324PA
+  + ATmega16HVA2
+  + ATmega16HVB
+  + ATmega48A
+  + ATmega88A
+  + ATmega168A
+  + ATmega328
+  + ATmega164A
+  + ATmega324A
+  + ATmega644A
+  + ATmega165A
+  + ATmega169A
+  + ATmega645A
+  + ATmega6450A
+  + ATmega649A
+  + ATmega6490A
+  + ATmega6490P
+  + ATmega645P
+  + ATmega6450P
+  + ATmega329PA
+  + ATxmega128A1U
+  + ATxmega64A1U
+  + ATtiny4
+  + ATtiny5
+  + ATtiny9
+  + ATtiny10
+  + ATtiny20
+  + ATtiny40
+  + ATtiny84A
+  + ATmega325A
+  + ATmega3250A
+  + ATmega329A
+  + ATmega3290A
+  + M3000
+
+* Optimized functions:
+
+   eeprom_read_block
+   eeprom_read_dword
+   eeprom_read_word
+   eeprom_write_block
+   eeprom_write_dword
+   eeprom_write_word
+   strtod
+   setjmp
+   sqrt   (and callers: acos, asin and hypot)
+   sin, cos, tan:  minor in space
+   strlcat, strlcat_P
+   strlcpy, strlcpy_P
+   strtok, strtok_r
+
+* Contributed Patches:
+
+  [#6194] Twitest updated to handle larger EEPROM devices
+  [#6352] Far pointer library
+  [#6500] Reentrant code faq
+  [#6517] Pgmspace with float support
+  [#6555] malloc improvement
+  [#6649] sqrt.S in libm changes
+  [#6690] Shorten calculation of dallas 1-wire crc
+  [#6718] Optimize the EEPROM functions
+  [#6720] FAQ update. Add EEPROM section, baud rate section. Correct spelling.
+  [#6791] Minor fixes to stdio.h documentation
+  [#6878] eewr_byte.S update for patch #6718
+  [#6891] Add XMega software reset to the FAQ section on software reset
+  [#6895] Improved malloc behaviour when expanding used area
+  [#6897] Allow <util/setbaud.h> to be used with assembler source
+
+* New functions:
+
+   cbrt
+   eeprom_read_dword
+   eeprom_read_float
+   eeprom_update_block
+   eeprom_update_byte
+   eeprom_update_dword
+   eeprom_update_float
+   eeprom_update_word
+   eeprom_write_dword
+   eeprom_write_float
+   memccpy_P
+   strdup
+   strtok
+   strtok_P
+   strtok_rP
+   strlen_PF
+   strnlen_PF
+   memcpy_PF
+   strcpy_PF
+   strncpy_PF
+   strcat_PF
+   strlcat_PF
+   strncat_PF
+   strcmp_PF
+   strncmp_PF
+   strcasecmp_PF
+   strncasecmp_PF
+   strstr_PF
+   strlcpy_PF
+   memcmp_PF
+   
+
+*** Changes in avr-libc-1.6.0:
+
+* Main changes from avr-libc 1.4 to 1.6:
+
+  + The fplib/math library is completely rewritten. Now features of the IEEE
+  754 standard are supported all: negative zero, subnormals, Infs and NaNs.
+  It concerns both to base operations (arithmetic, comparison...), and to
+  all functions. Speed of performance is increased, sometimes considerably.
+  A number of mistakes (not reflected in the Bugs) which led severe losses
+  of accuracy for some arguments is corrected. A number of new functions is
+  added. It is necessary to note, that the new library concedes old under
+  the charge of flash memory a little.
+
+    Incompatibilities:
+
+    - Conversion from float to long (make similar to GCC/x86):  in case if
+    overflow was or if input is NaN return 0x80000000 for signed result and
+    return 0 for unsigned result. Negative input (not too big in absolute
+    value) is permissible for cast to unsigned long, for example: (unsigned
+    long)(-1.0) returns ULONG_MAX.
+
+    - The signbit() function: return 1 as nonzero value (make similar to
+    builtin GCC).
+
+    - Make frexp() similar to GCC/x86 in case of nonfinite arg: write 0 by
+    exponent pointer. Early Avr-libc's frexp() skips exponent storing in this
+    case. Make the NULL a legal address to skip a storing.
+
+  + Functions of numbers to ascii conversion are completely rewritten:
+  dtostre(), dtostrf() and printf() family. They more do not use float point
+  operations. Speed of int/float to ascii has increased in some times. For
+  printf() the stack usage is reduced.
+
+  + Test suite is added to the Avr-libc project.
+
+  + A few new util's headers: util/atomic.h, util/setbaud.h .
+
+* Bugs fixed:
+
+  [no-id]  iscntrl() return true for some values from 0x80 to 0xff.
+  [no-id]  Fix the examples installation for non-doc builds.
+  [no-id]  Fix the spelling of the OCR1A/B registers in ATtinyX4 devices.
+  [no-id]  LED1/2 don't work in the largedemo on an ATmega16.
+  [no-id]  Not defined SPM_PAGESIZE for ATtinyX4/X5/X61 and ATtiny2313 devices.
+  [no-id]  Typo in iomxx0_1.h: PRUSART3.
+  [no-id]  Make include/avr/sfr_defs.h -Wundef safe.
+  [no-id]  Make include/avr/eeprom.h -Wundef safe.
+  [no-id]  Fix the timing of the HD44780 driver in the stdiodemo.
+  [no-id]  Fix the sleep mode definitions for the ATtiny2313.
+  [no-id]  Exclude 64-bit types for -mint8.
+  [no-id]  Make documentation build work with doxygen 1.5.x
+  [#1929]  -Inf not detected
+  [#11511] NaN not generated correctly by division library
+  [#11820] dtostre: wrong output with percision =3
+  [#13330] NaN is recognized not always
+  [#15161] util/delay.h misses inline keyword (regression)
+  [#15193] incorrect definition of IVSEL bit in MCUCR register
+  [#15266] Function ldexp incorrectly processes overflow and underflow cases.
+  [#15494] Compile warning and errors if compiler flag -Wundef flag specified
+  [#15512] Bootloader macros not interrupt safe.
+  [#15519] AT90CAN* processors incorrectly identified as "AT90S family"
+  [#15522] Typo in iotn2313.h vector table
+  [#15559] Wrong macro for boot_page_write(address) and ATmega128
+  [#15574] unneeded compatibility break
+  [#15595] GPIOR0 misspelled for ATtiny25/45/85
+  [#15732] interrupt.h: ISR() incompatibility with gcc 3.4.5
+  [#15890] missing /devtools/gen-avr-lib-tree.sh
+  [#16039] Names in Pxy (i.e. PA0) style of ports pins for some devices are
+           not defined.
+  [#16125] HD44780 data bit assignment restrictive
+  [#16260] _crc16_update lacks C equivalent
+  [#16411] Add the 'used' attribute to all interrupt service routine macros.
+  [#16434] EMPTY_INTERRUPT has no misspelled vector checking
+  [#16441] eeprom.h should use __asm__
+  [#16868] depricated.h: outp() arguments order misprint
+  [#17068] wdt.h file: __AVR_ATmeg324P__ spelling mistake
+  [#17470] Add API for CLKPR register.
+  [#17551] Update documentation to point to issues with gcc4.1
+  [#17591] /avr-libc/libm/fplib/fp_split.S error return will fail for
+           3-Byte PC devices
+  [#17608] Add ISR_ALIAS() to avr/interrupt.h
+  [#18115] online documentation typo/bug avr/boot.h
+  [#18373] Bugs in Inline ASM documentacion
+  [#18385] SPM_PAGESIZE wrong value for ATmega164p and ATmega324p
+  [#18509] strtod.S crashes due to stack problem with atmega 2560
+  [#18662] rand() keeps returning the same value if seeded with 0
+  [#18686] AT90USB**** devices are absent in interrupt-verctor-names table
+  [#18688] vfscanf and vfprintf don't use malloc
+  [#18726] the dtostrf function description is missing in AVR-Libc's webpage
+  [#18903] ATmega644 register definitions for SPI and PRR (datasheet vs. 
+           iom*.h)
+  [#18915] PWM1X Bit missing for ATtiny261/461/861
+  [#18964] USART definitions *wrong* in iocanxx.h
+  [#18994] minor optimization possible to stdlib functions isspace(),
+           isprint(), and islower()
+  [#19009] Make <util/delay.h> issue a warning when optimizations are turned 
off
+  [#19050] gcrt1.S should call main rather than jumping to it
+  [#19060] PCMSKx registers transposed in header for attinyX61
+  [#19445] _malloc_heap_end does not follow _heap_end on m2561
+  [#19495] <avr/interrupts.h> documentation: fix inclusion of cli and sei 
macros
+  [#19496] Add documentation: how to build toolchain for Windows.
+  [#19650] avr-libc: wrong named bit in SFR of AT90PWMx
+  [#19666] AT90PWMx: Another patch for the include file (missing SFR)
+  [#19669] Need function to read signature row
+  [#19686] alloc declaration missing
+  [#19841] Error building 1.4 HEAD: undefined reference to 'exit'
+  [#20248] FAQ#3: clarify which registers are safe to be used
+  [#20276] power.h missing ATmega644Ppower_XXX_[en/dis]able() macros
+  [#20435] Bit name definitions for AT90PWM3
+  [#20530] Bug in sample code for early wdt disable
+  [#20650] Missing description of AVR specific C-preprocessor macros
+  [#20682] Bad bit name in avr/io2313.h - Sugestion
+  [#20843] Mega 2561 library
+  [#21174] assembly error with targets at90s1200, attiny11, attiny12,
+           and attiny28
+  [#21183] Fix Program Space example code.
+  [#21204] iotnx61.h PRR bits incorrect
+  [#21228] Missing 3rd clause in BSD license in documentation pages
+  [#21299] Duplicate register address in iotn48.h.
+  [#21411] Typographical error in 'iotn13.h'
+  [#21432] Incorrect timer interrupt handler names for ATtiny45
+  [#21434] Bit name definitions for AT90CANxxx
+  [#21444] Undocument -minit-stack
+  [#21484] Documentation build for avr/version.h does not susbstitute autoconf
+           macros
+  [#21749] AT90PWM316: _VECTORS_SIZE should be 128
+  [#21691] iomx8.h-> IVSEL and IVCE should not be available for ATmega48
+  [#21743] AT90PWM316 missing PSOC1 bit definitions
+  [#21626] Incorrect Bit Definition for ADC14 and ADC15 Digital Input Disable
+  [#21521] incorrect bit definitions in iotnx61.h
+  [#21840] RAMEND wrong for ATmega48P/88P/168P
+
+* Other changes:
+
+  - New Power Management API in <avr/power.h>. This provides C language
+    macros to manipulate the Power Reduction Register(s) and the System Clock
+    Prescaler register across multiple processors.
+
+  [patch #4611] sleep.h sleep_mode() not interrupt safe
+
+  - The simple demo has been modernized a bit.  Documentation now
+    generally refers to the ATmega8 rather than the AT90S2313, and
+    the #ifdef spaghetti has been moved out into iocompat.h.
+
+  - A new demo project ("largedemo") has been added.  It extends
+    the simple demo by adding some controls, and thereby touches
+    a good number of avr-libc concepts.  It has originally been
+    written for the ATmega16, but can also be run on an ATmega8
+    or a member of the ATmegaX8 family, as well as on an ATtiny2313.
+
+  - Another demo project ("stdiodemo") has been added.  It
+    demonstrates the setup of the standard IO facilities using
+    a practical small application.
+
+  - The demo projects now install their source code as part of
+    the documentation tree.
+
+  - The simple demo has been ported to ATmega8515, ATmega8535,
+    ATmega164P, ATmega165, ATmega169, ATmega324P, ATmega325,
+    ATmega3250, ATmega329, ATmega3290, ATmega640, ATmega644,
+    ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490,
+    ATmega1280, ATmega1281, ATtiny2313, ATtiny24, ATtiny25, ATtiny26,
+    ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85,
+    ATtiny861.
+
+  - More overhaul of the demo documentation, don't use the "squid"
+    cable for the largedemo as it is not part of the STK500.
+
+  - Integrate a copy of the license file into the documentation.
+
+  - Include an alphabetical index of all globals (functions,
+    macros, types, variables) into the documentation.
+
+  - Added 'avr25' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
+    supported for AT86RF401, ATtiny13, ATtiny2313, ATtiny24, ATtiny25, 
+    ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85 and 
+    ATtiny861 devices. GCC 4.2 or above is necessary to use this. 
+
+  - Add the benchmark page.
+
+  [patch #5756] New atomic.h header file (added as <util/atomic.h>)
+
+  [patch #5343] Add a util/setbaud.h "helper" file
+
+  [patch #6236] Improving _delay_us and _delay_ms
+
+  [patch #5644] New interrupt.h header file
+
+* New devices supported:
+
+  + ATtiny24
+  + ATtiny261
+  + ATtiny44
+  + ATtiny461
+  + ATtiny84
+  + ATtiny861
+  + ATmega406
+  + ATmega169 Rev. F
+  + AT90USB82
+  + AT90USB162
+  + AT90USB646
+  + AT90USB647
+  + AT90USB1286
+  + AT90USB1287
+  + ATmega48P
+  + ATmega88P
+  + ATmega164P (renamed from ATmega164)
+  + ATmega168P
+  + ATmega324P (renamed from ATmega324)
+  + ATmega328P
+  + ATmega644P
+  + ATmega1284P
+  + ATmega165P
+  + ATmega169P
+  + ATmega2560 [patch #4461]
+  + ATmega2561 [patch #4461]
+  + ATmega325P
+  + ATmega3250P
+  + ATmega329P
+  + ATmega3290P
+  + AT90PWM1
+  + ATmega8HVA
+  + ATmega16HVA
+  + ATmega32HVB
+  + AT90PWM216
+  + AT90PWM316
+  + ATtiny43U
+  + ATtiny48
+  + ATtiny88
+  + AT90PWM2B
+  + AT90PWM3B
+
+* New functions: 
+
+   strstr_P (Contributed by Werner Boellmann)
+   round
+   lround
+   lrint
+
+* Optimized functions:
+
+   dtostre
+
+*** Changes in avr-libc-1.4.0:
+
+* Major API changes:
+
+  - The INTERRUPT() macro has been deprecated, and it will be
+    removed in a future version.  Use __attribute__((interrupt))
+    explicitly if this functionality is really needed.
+
+  - A new ISR() macro has been added, and is now the preferred
+    for to introduce an interrupt service routine.  It is
+    equivalent to the old SIGNAL() macro, which might become
+    deprecated in a future version.
+
+  - A new header file, <compat/deprecated.h> has been established.
+    Its purpose is to collect deprecated items from older versions of
+    the library, starting out with the enable_external_int(),
+    timer_enable_int(), and INTERRUPT() macros/functions, as well as
+    the old obsoleted inp/outp/sbi/cbi macros.
+
+  - A new include file subdirectory named "util/" has been created.
+    The files <compat/twi.h>, <avr/crc16.h>, <avr/delay.h>, and
+    <avr/parity.h> have been moved into the new util/ subdirectory.
+
+  - A new set of interrupt vector names has been added, closely
+    matching the names given in the datasheet, and more compatible to
+    other compilers available for the AVR platform.  The table of
+    interrupt vector names in the documentation is now automatically
+    generated, and explicitly mentions the MCU type for each vector
+    name.
+
+  - The standard IO facilities API has been enhanced
+
+    . The backend functions put and get that are passed to fdevopen()
+      during the setup of a stream now take the stream itself as an
+      additional argument.
+      By defining the macro __STDIO_FDEVOPEN_COMPAT_12 before
+      including <stdio.h>, an fdevopen() function prototype will be
+      declared that is backwards-compatible with avr-libc version
+      1.2 and before.
+    . It is possible to tie user data to a stream using
+      fdev_set_udata(), and to retrieve them using fdev_get_udata().
+      Together with the additional argument to the backend functions,
+      these functions can now e.g. keep track of internal user state,
+      or distinguish two different devices using the same backend
+      function.
+    . The get backend function can now return _FDEV_EOF to indicate an
+      end-of-file condition, in addition to _FDEV_ERR for an error
+      condition.  This will affect the internal state that can be
+      queried using the standard feof() and ferror() functions.
+    . A new macro fdev_setup_stream() is provided to setup a
+      user-supplied stream without the need to call fdevopen(), and thus
+      without requiring malloc().  A similar macro FDEV_SETUP_STREAM()
+      exists that can be used to initialized a FILE object.  The
+      floating-point implementations of vfscanf() and vfprintf() now
+      allocate their conversion buffer on the stack, so they do not need
+      malloc() anymore either.
+
+  - An API has been added to track the library version number.  See the
+    documentation of the new header file <avr/version.h>.
+
+* Bugs fixed:
+
+  [#3573] Make local symbols in .S files truely local
+  [#12324] overview: boot_page_write_safe, etc.
+  [#12333] Standard requires libstdc to define vprintf and vscanf
+  [#12495] about Busy-wait delay loops(document)
+  [#12496] about set_sleep_mode() and tiny26/tiny2313
+  [#12735] No support for AT94K devices in sleep.h
+  [#12739] Gcc assumes that target libc provides ffs function
+  [#12775] Possible Bug in sscanf on string end
+  [#13340] Math lib documentation/lib mismatch
+  [#13557] small typo in avr-libc-user-manual-1.2.3
+  [#14224] _delay_ms() not inlining if called more than once in a unit
+  [#14241] 'eeprom_is_ready' is not compiled with ATmega48
+  [#14262] avr-libc documentation error about .init sections
+  [#14266] use __extension__ in avr-libc header files
+  [#14327] wdt_disable() missing a cli
+  [#14378] EEPROM library d'not support at86rf401 device
+  [#14380] configure/make work only in source directory
+  [#14433] Improve documentation of <avr/delay.h>
+  [#14486] some macros from boot.h doesn't compile correctly
+  [#14503] strnlen_P is wrong with classic AVRs
+  [#14798] several IO registers definition issue in header files
+  [#14852] fp pow function broken for negative x
+
+* Other changes:
+
+  [patch #3592] speedup tanh function in libm
+  [patch #3750] Allow passing user data to stdio fdevopen() get and
+                put methods.  (This is part of the API changes
+                mentioned above.)
+  [patch #3780]        <assert.h> header
+  [patch #3781] add dummy fflush() to <stdio.h>
+  [patch #3782] modernize <stdint.h>
+  [patch #3912] Fix ctype.S linker error due to asm branches out
+                of range
+  [patch #3925] Dallas iButton 8-bit CRC
+  [patch #4087] C99 conformal headers stdint.h and inttypes.h
+  [patch #4505] Unified interrupt vector names in header files
+  [patch #4557] Adds to the fplib usage of MUL instruction 
+                in group avr4; avr5 devices
+  [patch #4608] rpm spec file update
+  [patch #4622] unify doc file location in rpms
+
+  - Update the build system to recent versions of autoconf/automake;
+    the old "doconf" and "domake" scripts are gone now, "reconf" has
+    been renamed to "bootstrap".
+  - Update the documentation system to doxygen >= 1.4.1.
+  - Major overhaul of the documentation, new layout of the HTML pages,
+    several clarifications and additions.
+  - Add support for the following new devices (depending on the ability
+    of the compiler/binutils to handle them):
+    . AT90CAN32/64
+    . AT90PWM2(B)/3(B)
+    . ATmega329/3290/649/6490
+    . ATtiny25/45/85
+    . ATmega164/324/644
+    . ATmega640/1280/1281
+  - The library is now compiled with -Os for avr3 and avr5 MCUs (i.e.
+    for those with > 8 KB of ROM); used to be -O3 before.
+
+* New string functions. Contributed by Dmitry Xmelkov.
+
+  ffs
+  ffsl
+  ffsll
+  _FFS (macro)
+
+* Optimized functions.
+
+  misc/itoa
+  misc/ltoa
+  misc/utoa
+  misc/ultoa
+  stdlib/longjmp
+  string/memchr
+  string/memccpy
+  string/strchr
+  string/strrchr
+  string/strsep
+  string/strstr
+
+*** Changes since avr-libc-1.2.4:
+
+* Bugs fixed:
+
+  [no-id]  EEPROM handling not working for AT90CAN128 ATmega48 ATmega88
+          ATmega165 ATmega168 ATmega169 ATmega325 ATmega3250 ATmega645
+          ATmega6450
+  [#12646] strtod returns error for valid input (patch#4137)
+  [#13341] Remove ADHSM bit from header files.
+
+* Other improvements:
+
+  [patch#4189] Document replacement for sbi/cbi instructions
+
+* boot.h: implement boot_lock_fuse_bits_get() plus macros for the
+          respective addresses (low/high/ext fuse, lock bits)
+
+
+*** Changes since avr-libc-1.2.3:
+
+* Bugs fixed:
+
+  [no-id]  Work around a bug in gas that made the weak symbol __stack
+           fixed inside gcrt1.S (since the assembler already inserted
+           its value).
+  [no-id]  Modify the doxygen build system to cope with artefacts from
+           recent versions of doxygen and (pdfelatex-based) LaTeX.
+  [#12033] macros.inc need to be protected from multiple inclusion.
+  [#12040] overview: sbi in FAQ
+  [#12134] ADC register name definitions
+  [#12422] Add new bit definitions for LCDCCR register in iom169.h.
+  [#12448] Fix bit definition for SJW0 in iocan128.h
+  [#12785] Fix documenation for log10() function in math.h.
+  [#12955] Signal name misprints: SIG_COMPERATOR in iom169.h,
+           SIG_EPROM_READY in iotn26.h
+  [#12993] Signal "__EICR" redefined warning ATmega8
+  [#13290] avr/io.h EEAR def is flawed for the Mega48
+  [#13327] Fix bit definition for UCSZ02 in iom325.h, iom3250.h,
+           iom645.h, iom6450.h
+  [#13678] The _wdt_write(value) macro in wdt.h doesn't work with
+           the ATmega325.(also with ATmega3250, ATmega645, ATmega6450,
+           ATmega165).
+
+* demo.c extended for ATmega16
+
+*** Changes since avr-libc-1.2.2:
+
+* Bugs fixed:
+
+  [#11987] sscanf parsing problem : leading zero ignored in %u
+
+*** Changes since avr-libc-1.2.1:
+
+* Bugs fixed:
+
+  [#11805] Fix call to __fp_cosinus in sin().
+  [#11817] Replace SYSCLK with F_CPU in twitest example.
+  [#11868] realloc doesn't work correctly on block at end of freelist
+           when growing
+  [#11898] Change optimisation level for building printf libraries to -Os.
+
+
+*** Changes since avr-libc-1.2.0:
+
+* Bugs fixed:
+
+  [no-id]  Prefix all internal global symbols in libm with __fp_ so
+           they do not collide with the application namespace.
+  [#4101]  setjmp/longjmp destroy changes in global registers.
+  [#11479] Add missing pin definitions for iotn16.h.
+  [#11486] Put the port bit defintions back in for mega16.
+  [#11494] strtol() return wrong value in the underflow case
+  [#11505] Remove doxygen comment about the deprecated inp/outp items.
+  [#11510] Abstract the change enable bit in wdt.h for mega32.
+  [#11522] Rewrite wdt_disable() to match datasheet algorithm.
+  [#11684] realloc overwrites first to bytes of memory block when shrinking
+  [patch #3618] Optimization strtol(), a little (related to bug #11494).
+  [#11732] Update doc/examples/progmem.c to use the latest API.
+
+* Extend stdio and pmstring APIs:
+
+Implement patch #3516: printf: Handling of argument strings from
+program memory
+
+The %S format can now be used to print strings that are located in
+program-space memory (aka. ROM).
+
+As a prerequisite for this, the function strnlen_P() has been added
+which is similar to strnlen() except that it takes a pointer to a
+program-space string.
+
+*** Changes in avr-libc-1.2:
+
+* Bugs fixed:
+
+  [no-id] Fix TICIE1 value in usb header files.
+  [no-id] Fix bug introduced in fix for bug #7802 (missing parens).
+  [no-id] Move ATtiny2313 and ATtiny13 from avr4 to avr2 (by now).
+  [#2143] malloc() routines chunk smaller than requested
+  [#5454] Inline functions results in undefined reference when optimize level 0
+          is used.
+  [#5799] error(?) in iom162.h
+  [#2233] Documentation issues with inline asm
+  [#6352] Sleep mode for ATmega162, ATmega161, and ATmega8515 
+  [#7469] "Problem" by using the library function "boot_lock_bits_set"
+  [#7556] printf and friends improperly handle non-null terminated strings when
+          a %s argument has a precision.
+  [#7802] vfscanf problem with unsigned long (patch #2554)
+  [#7989] dtostrf() destroys string pointer registers?
+  [#8119] _wdt_write macro in wdt.h doesn't work with ATmega169
+  [#8391] Fuse mask in boot.h wrong?
+          NOTE: boot_lock_bits_set() was broken. Please see the new
+          documentation for examples of how the new version works.
+  [#8452] some SFR and bit names in iom169.h are incorrect
+          NOTE: Where possible, the old names are retained to avoid breaking
+          existing code, but the OCR1A and OCR1B names where just plain wrong
+          so they have been changed and the incorrect names (OCRA1 and OCRB1)
+          are undefined.
+  [#8649] sfr_defs.h: missed _SFR_BYTE() in bit_is_set/clear
+  [#9345] Zero-Padding on vfprintf
+  [#10150] Update release versions compatible with avr-libc and instructions.
+  [#10489] Sleep mode for atmega48/88/168 family 
+  [#10733] Fix bit identifer ADFR to ADATE in mega64.
+  [#10828] Fix licenses on files to have same BSD license.
+  [#11242] Add the EEARH register definition for the mega48.
+  [#11275] fdevopen() should document its use of malloc()
+  [#11315] Add USART* signal names to match datasheet for mega32 and mega16.
+  [#11405] Add USART* signal names to match datasheet for mega128.
+  [#11418] Add PRR register and bit definitions for mega169.
+  [#11425] sleep.h missing semicolon
+
+* Remove deprecated items:
+  + obsolete headers from the base include directory (moved to the avr/
+    subdirectory long ago)
+  + deprecated macros and functions from
+    . <avr/eeprom.h> (eeprom_rb, eeprom_rw, eeprom_wb),
+    . <avr/io.h>  (cbi, sbi, inb, outb, inw, outw, inp, outp, BV),
+    . <avr/pgmspace.h> (PRG_RDB).
+  + . <avr/timer.h> removed completely.
+
+* Moved header files:
+
+  + <avr/ina90.h> moved to <compat/ina90.h>
+  + <avr/twi.h> moved to <compat/twi.h>
+
+* New devices supported:
+
+  + ATmega165
+  + ATmega325
+  + ATmega3250
+  + ATmega645
+  + ATmega6450
+  + ATmega48
+  + ATmega88
+  + ATmega168
+  + ATtiny13
+  + ATtiny2313
+  + AT90CAN128
+
+* Pin names for ports are now consistent for all devices.
+
+* dtostrf() now uses movw where possible
+
+* realloc() has been implemented.
+
+* Extend pgmspace API.
+
+The pgmspace API has had the following macros added to allow accessing of
+unsigned 32-bit values:
+
+  pgm_read_dword_near
+  pgm_read_dword_far
+  pgm_read_dword
+
+* Change boot API.
+
+The boot API internals have changed such that it is not compatible with the
+1.0.x API.
+
+These macros have been changed so that they no longer wait for SPM and EEPROM
+operations to complete. It turns out that doing those checks all the time is
+not needed and tends to bloat the code. Removing the checks allows you to
+write more compact code (see the example in avr/boot.h).
+
+  boot_page_fill
+  boot_page_erase
+  boot_page_write
+  boot_rww_enable
+  boot_lock_bits_set
+
+If you want the old behaviour (1.0.x compatible), use these new macros:
+
+  boot_page_fill_safe
+  boot_page_erase_safe
+  boot_page_write_safe
+  boot_rww_enable_safe
+  boot_lock_bits_set_safe
+
+* Extend eeprom API.
+
+New macro:
+  eeprom_busy_wait
+
+* Extend crc16 API.
+
+New functions:
+  _crc_xmodem_update
+  _crc_ccitt_update
+
+* Extend stdio API.
+
+New functions:
+  vfprintf_P
+  vfscanf_P
+  vsprintf
+  vsprintf_P
+  vsnprintf
+  vsnprintf_P
+
+* Extend malloc API.
+
+Implement realloc().
+
+* Extend delay API (<avr/delay.h>).
+
+Implement inline functions for specifying delays in microseconds, or
+milliseconds directly (based on the macro F_CPU specifying the CPU
+clock frequency).
+
+* Documentation changes:
+
+  + Use newer Doxygen.
+  + Many fixes and added documentation.
+  + Unix-style man pages are generated now when doc generation has been
+    enabled in ./configure
+
+* Optimize slightly strtol and strtoul functions.
+
+* Unified copyright.
+
+All of the avr-libc files are now distributed under a single license.
+All of the authors of the files agreed to this step.  The new license
+is a 3-clause simplified ``BSD-style'' license which is believed to be
+fully compatible with the GPL on one hand, yet imposes as minimal
+restrictions as possible for any kind of commercial use in
+applications based on avr-libc.
+
+To build the documentation, doxygen-1.3.4 or newer is strongly recommended.
+
+*** Changes in avr-libc-1.0:
+
+* Move source to cvs repositiory at http://savannah.gnu.org/projects/avr-libc
+
+Anonymous cvs access to the source is now available. There is also a mailing
+list set up for discussion of development of avr-libc.
+
+* License changes.
+
+All the files in the project now are covered by a modified BSD license. This 
+allows royalty free use of the library in commerical products. All of the 
+public domain files in the project have been switched to the new license and
+copyright given to the contributors of the files.
+
+There were some files taken from GNU GPL'd projects which were removed from
+avr-libc to simplify the licensing. The removed files only supplied alternate
+implementations, so nothing was lost by their removal.
+
+* Requires latest binutils and gcc
+
+Marek did some fairly major work with binutils and gcc to make adding support
+for new devices easier. His changes in those tools required changes to
+avr-libc which make it incompatible with older versions of binutils and gcc.
+Gcc versions >= 3.3 and binutils versions >= 2.13 are required.
+
+* New malloc implementation.
+
+Joerg Wunsch has supplied an improved malloc implementation which is less
+prone to fragmentation.
+
+* Documentation!
+
+Joerg Wunsch and Ted Roth and have been working on using the doxygen program to
+embed documentation comments into source code. Additionally, Harald Kipp's 
+inline asm cookbook and Rich Neswold's Avr Tools document have been merged into
+the user manual. The goal is to have a single place for all the documentation
+a user would need to get started developing for AVR microcontrollers using
+the GNU development tool chain.
+
+The latest documentation is available online at
+  http://www.freesoftware.fsf.org/avr-libc/
+
+* I/O registers accessible directly in C expressions
+
+You can now do this in your code:
+  PORTA |= 0x02;
+
+See the "Special Function Registers" documentation for details. This method is
+preferred over the use of the deprecated inp(), inb(), inw(), outp(), outb()
+and outw() functions.
+
+* New devices supported
+
+mega128
+mega169
+mega16
+mega32
+mega64 [untested]
+mega8515 [untested]
+mega8535 [untested]
+tiny26
+76c711
+43usb320
+43usb355
+86rf401
+
+* Improved trigonometrical functions:
+
+Reiner Patommel provided complete rewrites for asin(), atan() and atan2()
+that feature a better (for some argument ranges even much better)
+accuracy than the previous versions.  Note that since acos() uses asin(),
+it also benefits from this.
+
+* Incompatibilities with previous version.
+
+The arguments for outb()/outw() have been reversed.
+  (value,port) -> (port,value)
+
+* New pgmspace.h API.
+
+Changed function names and added new functions to read the Program Space
+FLASH. Added new functions to read 16-bit (word) values. The new API should 
+also clear up problems with reading data from devices with > 64K of FLASH.
+
+The API now includes:
+pgm_read_byte       (maps to the *_near function below)
+pgm_read_word       (maps to the *_near function below)
+pgm_read_byte_near
+pgm_read_word_near
+pgm_read_byte_far
+pgm_read_word_far
+
+
+* New bootloader support API.
+
+#include <avr/boot.h>
+
+This provides bootloader support functions to those processors that have 
+builtin bootloader support.
+
+* inb / outb / inw / outw / cbi / sbi macros are deprecated.
+
+* New string functions and optimized string functions.
+
+strlcpy   (optimized)
+strlcat   (optimized)
+strsep    (new)
+strtok_r  (new)
+strlcat_P (new)
+strlcpy_P (new)
+strncat_P (new)
+
+Contributed by Reiner Patommel with some work on strlcpy, strlcat by
+Eric Weddington.
+
+* New eeprom functions by Artur Lipowski <address@hidden>
+
+eeprom_write_word
+eeprom_write_block
+
+
+*** Changes up to avr-libc-20020203:
+
+See the ChangeLog file up to 2002-02-03 for details.
+

Deleted: tags/avr-libc-1_7_1-release/README
===================================================================
--- trunk/avr-libc/README       2011-02-16 08:44:23 UTC (rev 2213)
+++ tags/avr-libc-1_7_1-release/README  2011-02-16 21:36:51 UTC (rev 2216)
@@ -1,14 +0,0 @@
-This is avr-libc. It is a C library implementation for use with GNU GCC and 
GNU binutils for development of programs for Atmel's AVR microcontrollers.
-
-The current branch (1.3), requires the following versions of gcc and binutils:
-
-  Tool            Minimal Version       Preferred Version
-  ===========     ===============       =================
-  binutils            2.13                   2.16
-  gcc                 3.3                 Latest 3.4.x
-
-For details on installing and using AVR Libc, see the users manual in the
-doc/api directory or online at:
-
-  http://savannah.nongnu.org/projects/avr-libc/
-

Copied: tags/avr-libc-1_7_1-release/README (from rev 2214, 
trunk/avr-libc/README)
===================================================================
--- tags/avr-libc-1_7_1-release/README                          (rev 0)
+++ tags/avr-libc-1_7_1-release/README  2011-02-16 21:36:51 UTC (rev 2216)
@@ -0,0 +1,14 @@
+This is avr-libc. It is a C library implementation for use with GNU GCC and 
GNU binutils for development of programs for Atmel's AVR microcontrollers.
+
+The current branch (1.3), requires the following versions of gcc and binutils:
+
+  Tool            Minimal Version       Preferred Version
+  ===========     ===============       =================
+  binutils            2.13                Latest
+  gcc                 3.3                 Latest 3.4.x
+
+For details on installing and using AVR Libc, see the users manual in the
+doc/api directory or online at:
+
+  http://savannah.nongnu.org/projects/avr-libc/
+

Deleted: tags/avr-libc-1_7_1-release/configure.ac
===================================================================
--- trunk/avr-libc/configure.ac 2011-02-16 08:44:23 UTC (rev 2213)
+++ tags/avr-libc-1_7_1-release/configure.ac    2011-02-16 21:36:51 UTC (rev 
2216)
@@ -1,1324 +0,0 @@
-#                                               -*- Autoconf -*-
-#
-# Copyright (c) 2004,  Theodore A. Roth
-# Copyright (c) 2005,2006,2007,2009  Anatoly Sokolov
-# Copyright (c) 2005,2008  Joerg Wunsch
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in
-#   the documentation and/or other materials provided with the
-#   distribution.
-# * Neither the name of the copyright holders nor the names of
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# $Id$
-#
-# Process this file with autoconf to produce a configure script.
-#
-
-dnl library versioning -- modify these on releases
-dnl        macro name           value            description
-m4_define([avr_libc_major],    [1])dnl           major version
-m4_define([avr_libc_minor],    [7])dnl           minor version
-m4_define([avr_libc_revision], [1])dnl           revision (dot-dot version)
-m4_define([avr_libc_reldate],  [20100616])dnl    release date
-dnl end of library versioning data
-
-dnl odd minor number marks a development branch, append date to version there
-m4_define([avr_libc_version],
-          avr_libc_major.avr_libc_minor.avr_libc_revision)dnl
-m4_define([avr_libc_version_numeric],
-          m4_eval(10000 * avr_libc_major + dnl
-                    100 * avr_libc_minor + dnl
-                          avr_libc_revision))dnl
-
-AC_INIT(avr-libc, avr_libc_version, address@hidden)
-
-AC_PREREQ(2.59)
-AC_REVISION($Revision$)
-
-AC_CONFIG_SRCDIR([doc/examples/demo/demo.c])
-AC_CONFIG_HEADER([config.h])
-
-dnl substitute M4 macros into shell variables
-AVR_LIBC_MAJOR=avr_libc_major
-AVR_LIBC_MINOR=avr_libc_minor
-AVR_LIBC_REVISION=avr_libc_revision
-AVR_LIBC_RELDATE=avr_libc_reldate
-AVR_LIBC_VERSION=avr_libc_version
-AVR_LIBC_VERSION_NUMERIC=avr_libc_version_numeric
-dnl ...and trigger Makefile.in substitutions
-AC_SUBST(AVR_LIBC_MAJOR)
-AC_SUBST(AVR_LIBC_MINOR)
-AC_SUBST(AVR_LIBC_REVISION)
-AC_SUBST(AVR_LIBC_RELDATE)
-AC_SUBST(AVR_LIBC_VERSION)
-AC_SUBST(AVR_LIBC_VERSION_NUMERIC)
-
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-# See if the user specified '--build=`../config.guess` --host=avr' when
-# running ../configure.
-
-AC_MSG_CHECKING([if configuring for cross compile])
-if test "x${build_alias}" = "x${host_alias}"; then
-       if test "x${build_alias}" = "x" ; then
-               build_alias='`./config.guess`'
-       fi
-       AC_MSG_RESULT(no)
-       AC_MSG_WARN()
-       AC_MSG_WARN(AVR-LIBC must be built using an avr cross-compiler.)
-       AC_MSG_WARN(Try configuring with:)
-       AC_MSG_WARN("$0 --build=$build_alias --host=avr")
-       AC_MSG_WARN()
-       AC_MSG_ERROR(aborting configure)
-else
-       AC_MSG_RESULT([yes])
-fi
-
-AC_MSG_CHECKING([if target host is avr])
-case "$host" in
-       avr* )
-               AC_MSG_RESULT([yes])
-               ;;
-       * )
-               AC_MSG_RESULT(no)
-               AC_MSG_WARN()
-               AC_MSG_WARN(Avr-libc must be built using an avr cross-compiler.)
-               AC_MSG_WARN(Try configuring with:)
-               AC_MSG_WARN("$0 --build=$build --host=avr")
-               AC_MSG_WARN()
-               AC_MSG_ERROR(aborting configure)
-               ;;
-esac
-
-## TODO: Write a check for GNU Make
-
-dnl The default check whether the C compiler can create an executable
-dnl is inappropriate for us as it requires an existing library.
-AC_NO_EXECUTABLES
-
-dnl Minimum version of Automake is 1.8.
-dnl We don't want the gzip distribution tarball anymore.
-AM_INIT_AUTOMAKE([1.8 dist-bzip2 no-dist-gzip])
-
-# We don't want touse the cflags from the environment since we need control
-# of this when we're building the libs.
-CFLAGS=""
-
-
-dnl This fix is from Newlib in config/override.m4.
-dnl Fix 2.64 cross compile detection for AVR by not trying to compile fopen.
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],
-  [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77],
-     [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)], 
m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])])
-
-
-# Checks for programs.
-
-AC_PROG_CC
-AC_CHECK_TOOL(AS, as, as)
-AM_PROG_AS
-AC_PROG_RANLIB
-AC_CHECK_TOOL(AR, ar, ar)
-
-# Make sure that we found the right avr cross-compiler.
-
-case "${CC}" in
-   *avr-gcc*) ;;
-   *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
-esac
-case "${AS}" in
-   *avr-as*) ;;
-   *) AC_MSG_ERROR(Wrong assembler found; check the PATH!) ;;
-esac
-case "${AR}" in
-   *avr-ar*) ;;
-   *) AC_MSG_ERROR(Wrong archiver found; check the PATH!) ;;
-esac
-case "${RANLIB}" in
-   *avr-ranlib*) ;;
-   *) AC_MSG_ERROR(Wrong ranlib found; check the PATH!) ;;
-esac
-
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-
-dnl TODO: Check for various tools used to build the documentation. If anything
-dnl is missing, don't build the docs by default.
-
-dnl Disable building of dox by default since it they may not build properly on
-dnl all systems. This isn't optimal, but how do we work around the user not
-dnl having fig2dev and still build all the formats?
-
-AC_ARG_ENABLE(doc,
-[  --enable-doc            build all doc formats (disabled is default)],
-[case "${enableval}" in
-  yes) enable_doc=yes ;;
-  no)  enable_doc=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for global doc option) ;;
- esac], [enable_doc=no])dnl
-dnl Various documentation options.  By default, we enable all of them,
-dnl i. e. HTML, Postscript, PDF, and Unix-style man pages.
-AC_ARG_ENABLE(html-doc,
-[  --enable-html-doc       build HTML documentation (default)],
-[case "${enableval}" in
-  yes) html_doc=yes ;;
-  no)  html_doc=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for html-doc option) ;;
- esac], [html_doc=yes])dnl
-
-AC_ARG_ENABLE(pdf-doc,
-[  --enable-pdf-doc        build PDF documentation (default)],
-[case "${enableval}" in
-  yes) pdf_doc=yes ;;
-  no)  pdf_doc=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for pdf-doc option) ;;
- esac], [pdf_doc=yes])dnl
-
-dnl Man pages are currently not tunable; they'll be built whenever
-dnl the HTML documentation is built.  However, it can be configured
-dnl whether the result is about to be installed or not.
-AC_ARG_ENABLE(man-doc,
-[  --enable-man-doc        build Unix-style manual pages (default)],
-[case "${enableval}" in
-  yes) man_doc=yes ;;
-  no)  man_doc=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for man-doc option) ;;
- esac], [man_doc=yes])dnl
-
-AC_ARG_ENABLE(versioned-doc,
-[  --enable-versioned-doc  install docs in directory with version name 
(default)],
-[case "${enableval}" in
-  yes) versioned_doc=yes ;;
-  no)  versioned_doc=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for versioned-doc option) ;;
- esac], [versioned_doc=yes])dnl
-
-dnl troth/2002-07-12: The CHECK_DOXYGEN macro should be moved to a config
-dnl dir. I put it here until I figure out how to integrate the config dir.
-
-dnl
-dnl @synopsis CHECK_DOXYGEN
-dnl
-dnl This macro checks if doxygen is installed on the build system
-dnl
-dnl @version Id: check_doxygen.m4,v 1.2 2002/02/10 23:22:40 troth Exp
-dnl @author Theodore A. Roth <address@hidden>
-dnl
-AC_DEFUN([CHECK_DOXYGEN],[dnl
-dnl
-AC_MSG_CHECKING([for doxygen])
-dox_ver=`doxygen --version 2>/dev/null`
-if test "x$dox_ver" = "x"; then
-       AC_MSG_RESULT(no)
-else
-       # FIXME: should also check for dox_ver >= 1.4.1
-       AC_MSG_RESULT(yes)
-       if test "$pdf_doc" = "yes"; then
-               AC_MSG_NOTICE([Enabling PDF docs])
-               TARGET_DOX_PDF=dox-pdf
-               INSTALL_DOX_PDF=install-dox-pdf
-       fi
-       if test "$html_doc" = "yes"; then
-               AC_MSG_NOTICE([Enabling HTML docs])
-               TARGET_DOX_HTML=dox-html
-               INSTALL_DOX_HTML=install-dox-html
-       fi
-dnl The creation of man pages is a side-effect of the HTML
-dnl generation, so a different target is only needed for installation.
-       if test "$man_doc" = "yes"; then
-               AC_MSG_NOTICE([Enabling man pages])
-               TARGET_DOX_HTML=dox-html
-               INSTALL_DOX_MAN=install-dox-man
-       fi
-fi
-dnl
-AC_SUBST(TARGET_DOX_PDF)
-AC_SUBST(TARGET_DOX_HTML)
-AC_SUBST(INSTALL_DOX_PDF)
-AC_SUBST(INSTALL_DOX_HTML)
-AC_SUBST(INSTALL_DOX_MAN)
-])dnl
-
-CHECK_DOXYGEN
-
-dnl
-dnl @synopsis CHECK_PNG_UTILS
-dnl
-dnl This macro checks if pngtopnm and pnmtopng are installed. If they are not
-dnl installed we just fake it with "cat".
-dnl
-dnl We use these in the dox to insert transparency into the png images as such:
-dnl
-dnl   $ pngtopnm foo.png > tmp.pnm
-dnl   $ pnmtopng -transparent white tmp.pnm > foo.png
-dnl
-dnl @version 
-dnl @author Theodore A. Roth <address@hidden> and Eric B. Weddington 
<address@hidden>
-dnl
-AC_DEFUN([CHECK_PNG_UTILS],[dnl
-dnl
-AC_MSG_CHECKING([for pngtopnm])
-has_pngtopnm=`pngtopnm --version 2>&1 | grep -c -i Version`
-if test "$has_pngtopnm" = "1"; then
-       AC_MSG_RESULT(yes)
-       PNGTOPNM="pngtopnm"
-else
-       AC_MSG_RESULT(no)
-       PNGTOPNM="cat"
-fi
-dnl
-AC_MSG_CHECKING([for pnmtopng])
-has_pnmtopng=`pnmtopng --version 2>&1 | grep -c -i Version`
-if test "$has_pnmtopng" = "1"; then
-       AC_MSG_RESULT(yes)
-       PNMTOPNG="pnmtopng"
-else
-       AC_MSG_RESULT(no)
-       PNMTOPNG="cat"
-    PNGTOPNM="cat"
-fi
-AC_SUBST(PNGTOPNM)
-AC_SUBST(PNMTOPNG)
-])dnl
-
-CHECK_PNG_UTILS
-
-if test "$versioned_doc" = "yes"; then
-       DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc-$(VERSION)'
-       AVR_LIBC_USER_MANUAL="avr-libc-user-manual-${VERSION}"
-else
-       DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc'
-       AVR_LIBC_USER_MANUAL="avr-libc-user-manual"
-fi
-
-dnl We only want to build the docs if the user has passed
-dnl "--enable-doc" to configure.
-if test "$enable_doc" = "yes"; then
-       DOCSDIR='api'
-else
-       DOCSDIR=''
-fi
-
-AC_SUBST(DOCSDIR)
-AC_SUBST(AVR_LIBC_USER_MANUAL)
-AC_SUBST(DOC_INST_DIR)
-
-FNO_JUMP_TABLES=""
-AC_SUBST(FNO_JUMP_TABLES)
-
-HAS_DELAY_CYCLES=0
-AC_SUBST(HAS_DELAY_CYCLES)
-
-AC_DEFUN(
-  CHECK_MNO_TABLEJUMP,
-  [
-    old_CC=${CC}
-    old_CFLAGS=${CFLAGS}
-    CFLAGS="-mno-tablejump"
-    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
-    AC_MSG_CHECKING(whether ${CC} supports -mno-tablejump)
-    AC_COMPILE_IFELSE(
-      [AC_LANG_SOURCE([],[])],
-      [has_mno_tablejump=yes],
-      [has_mno_tablejump=no]
-    )
-    if test "x$has_mno_tablejump" = "xyes"
-    then
-      FNO_JUMP_TABLES="-mno-tablejump"
-    fi
-    AC_MSG_RESULT($has_mno_tablejump)
-    CC=${old_CC}
-    CFLAGS=${old_CFLAGS}
-  ]
-)
-
-AC_DEFUN(
-  CHECK_FNO_JUMP_TABLES,
-  [
-    old_CC=${CC}
-    old_CFLAGS=${CFLAGS}
-    CFLAGS="-fno-jump-tables"
-    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
-    AC_MSG_CHECKING(whether ${CC} supports -fno-jump-tables)
-    AC_COMPILE_IFELSE(
-      [AC_LANG_SOURCE([],[])],
-      [has_fno_jump_tables=yes],
-      [has_fno_jump_tables=no]
-    )
-    if test "x$has_fno_jump_tables" = "xyes"
-    then
-      FNO_JUMP_TABLES="-fno-jump-tables"
-    fi
-    AC_MSG_RESULT($has_fno_jump_tables)
-    CC=${old_CC}
-    CFLAGS=${old_CFLAGS}
-  ]
-)
-
-AC_DEFUN(
-  CHECK_BUILTIN_DELAY_CYCLES,
-  [
-    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
-    AC_MSG_CHECKING(whether ${CC} supports __builtin_avr_delay_cycles)
-    echo "extern void __builtin_avr_delay_cycles(unsigned long);\
-    int main(void) { __builtin_avr_delay_cycles(42); return 0; }" |\
-    ${CC} -S -xc -o- - |\
-    grep __builtin_avr_delay_cycles >/dev/null
-    if test "$?" != "0"
-    then
-      HAS_DELAY_CYCLES=1
-      has_delay_cycles="yes"
-    else
-      has_delay_cycles="no"
-    fi
-    AC_MSG_RESULT($has_delay_cycles)
-    CC=${old_CC}
-  ]
-)
-
-CHECK_MNO_TABLEJUMP
-CHECK_FNO_JUMP_TABLES
-CHECK_BUILTIN_DELAY_CYCLES
-
-dnl Some devices are only handled by newer version of gcc. This macro lets us
-dnl probe to see if the installed avr-gcc supports a questionable device.
-AC_DEFUN(
-  CHECK_AVR_DEVICE,
-  [
-    old_CC=${CC}
-    old_CFLAGS=${CFLAGS}
-    CFLAGS="-mmcu=$1"
-    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
-    AC_MSG_CHECKING(if ${CC} has support for $1)
-    AC_COMPILE_IFELSE(
-      [AC_LANG_SOURCE([],[])],
-      [has_dev_support=yes],
-      [has_dev_support=no]
-    )
-    if test "x$has_dev_support" = "xyes"
-    then
-      HAS_$1=yes
-    fi
-    AC_MSG_RESULT($has_dev_support)
-    CC=${old_CC}
-    CFLAGS=${old_CFLAGS}
-  ]
-)
-
-
-# avr1
-AM_CONDITIONAL(HAS_avr1, true)
-AM_CONDITIONAL(HAS_at90s1200, true)
-AM_CONDITIONAL(HAS_attiny11, true)
-AM_CONDITIONAL(HAS_attiny12, true)
-AM_CONDITIONAL(HAS_attiny15, true)
-AM_CONDITIONAL(HAS_attiny28, true)
-
-
-# avr2
-AM_CONDITIONAL(HAS_avr2, true)
-AM_CONDITIONAL(HAS_at90s2313, true)
-AM_CONDITIONAL(HAS_at90s2323, true)
-AM_CONDITIONAL(HAS_at90s2333, true)
-AM_CONDITIONAL(HAS_at90s2343, true)
-AM_CONDITIONAL(HAS_at90s4414, true)
-AM_CONDITIONAL(HAS_at90s4433, true)
-AM_CONDITIONAL(HAS_at90s4434, true)
-AM_CONDITIONAL(HAS_at90s8515, true)
-AM_CONDITIONAL(HAS_at90c8534, true)
-AM_CONDITIONAL(HAS_at90s8535, true)
-AM_CONDITIONAL(HAS_attiny22, true)
-AM_CONDITIONAL(HAS_attiny26, true)
-
-
-#avr25
-CHECK_AVR_DEVICE(avr25)
-AM_CONDITIONAL(HAS_avr25, test "x$HAS_avr25" = "xyes")
-
-CHECK_AVR_DEVICE(ata6289)
-AM_CONDITIONAL(HAS_ata6289, test "x$HAS_ata6289" = "xyes")
-
-CHECK_AVR_DEVICE(attiny13)
-AM_CONDITIONAL(HAS_attiny13, test "x$HAS_attiny13" = "xyes")
-
-CHECK_AVR_DEVICE(attiny13a)
-AM_CONDITIONAL(HAS_attiny13a, test "x$HAS_attiny13a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny2313)
-AM_CONDITIONAL(HAS_attiny2313, test "x$HAS_attiny2313" = "xyes")
-
-CHECK_AVR_DEVICE(attiny2313a)
-AM_CONDITIONAL(HAS_attiny2313a, test "x$HAS_attiny2313a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny24)
-AM_CONDITIONAL(HAS_attiny24, test "x$HAS_attiny24" = "xyes")
-
-CHECK_AVR_DEVICE(attiny24a)
-AM_CONDITIONAL(HAS_attiny24a, test "x$HAS_attiny24a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny25)
-AM_CONDITIONAL(HAS_attiny25, test "x$HAS_attiny25" = "xyes")
-
-CHECK_AVR_DEVICE(attiny261)
-AM_CONDITIONAL(HAS_attiny261, test "x$HAS_attiny261" = "xyes")
-
-CHECK_AVR_DEVICE(attiny261a)
-AM_CONDITIONAL(HAS_attiny261a, test "x$HAS_attiny261a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny43u)
-AM_CONDITIONAL(HAS_attiny43u, test "x$HAS_attiny43u" = "xyes")
-
-CHECK_AVR_DEVICE(attiny4313)
-AM_CONDITIONAL(HAS_attiny4313, test "x$HAS_attiny4313" = "xyes")
-
-CHECK_AVR_DEVICE(attiny44)
-AM_CONDITIONAL(HAS_attiny44, test "x$HAS_attiny44" = "xyes")
-
-CHECK_AVR_DEVICE(attiny44a)
-AM_CONDITIONAL(HAS_attiny44a, test "x$HAS_attiny44a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny45)
-AM_CONDITIONAL(HAS_attiny45, test "x$HAS_attiny45" = "xyes")
-
-CHECK_AVR_DEVICE(attiny461)
-AM_CONDITIONAL(HAS_attiny461, test "x$HAS_attiny461" = "xyes")
-
-CHECK_AVR_DEVICE(attiny461a)
-AM_CONDITIONAL(HAS_attiny461a, test "x$HAS_attiny461a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny48)
-AM_CONDITIONAL(HAS_attiny48, test "x$HAS_attiny48" = "xyes")
-
-CHECK_AVR_DEVICE(attiny84)
-AM_CONDITIONAL(HAS_attiny84, test "x$HAS_attiny84" = "xyes")
-
-CHECK_AVR_DEVICE(attiny84a)
-AM_CONDITIONAL(HAS_attiny84a, test "x$HAS_attiny84a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny85)
-AM_CONDITIONAL(HAS_attiny85, test "x$HAS_attiny85" = "xyes")
-
-CHECK_AVR_DEVICE(attiny861)
-AM_CONDITIONAL(HAS_attiny861, test "x$HAS_attiny861" = "xyes")
-
-CHECK_AVR_DEVICE(attiny861a)
-AM_CONDITIONAL(HAS_attiny861a, test "x$HAS_attiny861a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny87)
-AM_CONDITIONAL(HAS_attiny87, test "x$HAS_attiny87" = "xyes")
-
-CHECK_AVR_DEVICE(attiny88)
-AM_CONDITIONAL(HAS_attiny88, test "x$HAS_attiny88" = "xyes")
-
-CHECK_AVR_DEVICE(at86rf401)
-AM_CONDITIONAL(HAS_at86rf401, test "x$HAS_at86rf401" = "xyes")
-
-
-# avr3
-AM_CONDITIONAL(HAS_avr3, true)
-AM_CONDITIONAL(HAS_at43usb320, true)
-AM_CONDITIONAL(HAS_at43usb355, true)
-AM_CONDITIONAL(HAS_at76c711, true)
-
-#avr31
-CHECK_AVR_DEVICE(avr31)
-AM_CONDITIONAL(HAS_avr31, test "x$HAS_avr31" = "xyes")
-
-AM_CONDITIONAL(HAS_atmega103, true)
-
-
-#avr35
-CHECK_AVR_DEVICE(avr35)
-AM_CONDITIONAL(HAS_avr35, test "x$HAS_avr35" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb82)
-AM_CONDITIONAL(HAS_at90usb82, test "x$HAS_at90usb82" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb162)
-AM_CONDITIONAL(HAS_at90usb162, test "x$HAS_at90usb162" = "xyes")
-
-CHECK_AVR_DEVICE(atmega8u2)
-AM_CONDITIONAL(HAS_atmega8u2, test "x$HAS_atmega8u2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16u2)
-AM_CONDITIONAL(HAS_atmega16u2, test "x$HAS_atmega16u2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u2)
-AM_CONDITIONAL(HAS_atmega32u2, test "x$HAS_atmega32u2" = "xyes")
-
-CHECK_AVR_DEVICE(attiny167)
-AM_CONDITIONAL(HAS_attiny167, test "x$HAS_attiny167" = "xyes")
-
-
-# avr4
-AM_CONDITIONAL(HAS_avr4, true)
-AM_CONDITIONAL(HAS_atmega8, true)
-AM_CONDITIONAL(HAS_atmega8515, true)
-AM_CONDITIONAL(HAS_atmega8535, true)
-
-CHECK_AVR_DEVICE(atmega48)
-AM_CONDITIONAL(HAS_atmega48, test "x$HAS_atmega48" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48a)
-AM_CONDITIONAL(HAS_atmega48a, test "x$HAS_atmega48a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48p)
-AM_CONDITIONAL(HAS_atmega48p, test "x$HAS_atmega48p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88)
-AM_CONDITIONAL(HAS_atmega88, test "x$HAS_atmega88" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88a)
-AM_CONDITIONAL(HAS_atmega88a, test "x$HAS_atmega88a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88p)
-AM_CONDITIONAL(HAS_atmega88p, test "x$HAS_atmega88p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88pa)
-AM_CONDITIONAL(HAS_atmega88pa, test "x$HAS_atmega88pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega8hva)
-AM_CONDITIONAL(HAS_atmega8hva, test "x$HAS_atmega8hva" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm1)
-AM_CONDITIONAL(HAS_at90pwm1, test "x$HAS_at90pwm1" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm2)
-AM_CONDITIONAL(HAS_at90pwm2, test "x$HAS_at90pwm2" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm2b)
-AM_CONDITIONAL(HAS_at90pwm2b, test "x$HAS_at90pwm2b" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm3)
-AM_CONDITIONAL(HAS_at90pwm3, test "x$HAS_at90pwm3" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm3b)
-AM_CONDITIONAL(HAS_at90pwm3b, test "x$HAS_at90pwm3b" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm81)
-AM_CONDITIONAL(HAS_at90pwm81, test "x$HAS_at90pwm81" = "xyes")
-
-
-# avr5
-AM_CONDITIONAL(HAS_avr5, true)
-
-CHECK_AVR_DEVICE(at90can32)
-AM_CONDITIONAL(HAS_at90can32, test "x$HAS_at90can32" = "xyes")
-
-CHECK_AVR_DEVICE(at90can64)
-AM_CONDITIONAL(HAS_at90can64, test "x$HAS_at90can64" = "xyes")
-
-CHECK_AVR_DEVICE(at90scr100)
-AM_CONDITIONAL(HAS_at90scr100, test "x$HAS_at90scr100" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb646)
-AM_CONDITIONAL(HAS_at90usb646, test "x$HAS_at90usb646" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb647)
-AM_CONDITIONAL(HAS_at90usb647, test "x$HAS_at90usb647" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm316)
-AM_CONDITIONAL(HAS_at90pwm316, test "x$HAS_at90pwm316" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm216)
-AM_CONDITIONAL(HAS_at90pwm216, test "x$HAS_at90pwm216" = "xyes")
-
-CHECK_AVR_DEVICE(at94k)
-AM_CONDITIONAL(HAS_at94k, test "x$HAS_at94k" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16)
-AM_CONDITIONAL(HAS_atmega16, test "x$HAS_atmega16" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16a)
-AM_CONDITIONAL(HAS_atmega16a, test "x$HAS_atmega16a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega161)
-AM_CONDITIONAL(HAS_atmega161, test "x$HAS_atmega161" = "xyes")
-
-CHECK_AVR_DEVICE(atmega162)
-AM_CONDITIONAL(HAS_atmega162, test "x$HAS_atmega162" = "xyes")
-
-CHECK_AVR_DEVICE(atmega163)
-AM_CONDITIONAL(HAS_atmega163, test "x$HAS_atmega163" = "xyes")
-
-CHECK_AVR_DEVICE(atmega164a)
-AM_CONDITIONAL(HAS_atmega164a, test "x$HAS_atmega164a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega164p)
-AM_CONDITIONAL(HAS_atmega164p, test "x$HAS_atmega164p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165)
-AM_CONDITIONAL(HAS_atmega165, test "x$HAS_atmega165" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165a)
-AM_CONDITIONAL(HAS_atmega165a, test "x$HAS_atmega165a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165p)
-AM_CONDITIONAL(HAS_atmega165p, test "x$HAS_atmega165p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168)
-AM_CONDITIONAL(HAS_atmega168, test "x$HAS_atmega168" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168a)
-AM_CONDITIONAL(HAS_atmega168a, test "x$HAS_atmega168a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168p)
-AM_CONDITIONAL(HAS_atmega168p, test "x$HAS_atmega168p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169)
-AM_CONDITIONAL(HAS_atmega169, test "x$HAS_atmega169" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169a)
-AM_CONDITIONAL(HAS_atmega169a, test "x$HAS_atmega169a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169p)
-AM_CONDITIONAL(HAS_atmega169p, test "x$HAS_atmega169p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169pa)
-AM_CONDITIONAL(HAS_atmega169pa, test "x$HAS_atmega169pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hva)
-AM_CONDITIONAL(HAS_atmega16hva, test "x$HAS_atmega16hva" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hva2)
-AM_CONDITIONAL(HAS_atmega16hva2, test "x$HAS_atmega16hva2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hvb)
-AM_CONDITIONAL(HAS_atmega16hvb, test "x$HAS_atmega16hvb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hvbrevb)
-AM_CONDITIONAL(HAS_atmega16hvbrevb, test "x$HAS_atmega16hvbrevb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16m1)
-AM_CONDITIONAL(HAS_atmega16m1, test "x$HAS_atmega16m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16u4)
-AM_CONDITIONAL(HAS_atmega16u4, test "x$HAS_atmega16u4" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32)
-AM_CONDITIONAL(HAS_atmega32, test "x$HAS_atmega32" = "xyes")
-
-CHECK_AVR_DEVICE(atmega323)
-AM_CONDITIONAL(HAS_atmega323, test "x$HAS_atmega323" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324a)
-AM_CONDITIONAL(HAS_atmega324a, test "x$HAS_atmega324a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324p)
-AM_CONDITIONAL(HAS_atmega324p, test "x$HAS_atmega324p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324pa)
-AM_CONDITIONAL(HAS_atmega324pa, test "x$HAS_atmega324pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325)
-AM_CONDITIONAL(HAS_atmega325, test "x$HAS_atmega325" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325a)
-AM_CONDITIONAL(HAS_atmega325a, test "x$HAS_atmega325a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325p)
-AM_CONDITIONAL(HAS_atmega325p, test "x$HAS_atmega325p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250)
-AM_CONDITIONAL(HAS_atmega3250, test "x$HAS_atmega3250" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250a)
-AM_CONDITIONAL(HAS_atmega3250a, test "x$HAS_atmega3250a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250p)
-AM_CONDITIONAL(HAS_atmega3250p, test "x$HAS_atmega3250p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega328)
-AM_CONDITIONAL(HAS_atmega328, test "x$HAS_atmega328" = "xyes")
-
-CHECK_AVR_DEVICE(atmega328p)
-AM_CONDITIONAL(HAS_atmega328p, test "x$HAS_atmega328p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329)
-AM_CONDITIONAL(HAS_atmega329, test "x$HAS_atmega329" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329a)
-AM_CONDITIONAL(HAS_atmega329a, test "x$HAS_atmega329a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329p)
-AM_CONDITIONAL(HAS_atmega329p, test "x$HAS_atmega329p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329pa)
-AM_CONDITIONAL(HAS_atmega329pa, test "x$HAS_atmega329pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290)
-AM_CONDITIONAL(HAS_atmega3290, test "x$HAS_atmega3290" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290a)
-AM_CONDITIONAL(HAS_atmega3290a, test "x$HAS_atmega3290a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290p)
-AM_CONDITIONAL(HAS_atmega3290p, test "x$HAS_atmega3290p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32c1)
-AM_CONDITIONAL(HAS_atmega32c1, test "x$HAS_atmega32c1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32hvb)
-AM_CONDITIONAL(HAS_atmega32hvb, test "x$HAS_atmega32hvb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32hvbrevb)
-AM_CONDITIONAL(HAS_atmega32hvbrevb, test "x$HAS_atmega32hvbrevb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32m1)
-AM_CONDITIONAL(HAS_atmega32m1, test "x$HAS_atmega32m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u4)
-AM_CONDITIONAL(HAS_atmega32u4, test "x$HAS_atmega32u4" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u6)
-AM_CONDITIONAL(HAS_atmega32u6, test "x$HAS_atmega32u6" = "xyes")
-
-CHECK_AVR_DEVICE(atmega406)
-AM_CONDITIONAL(HAS_atmega406, test "x$HAS_atmega406" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64)
-AM_CONDITIONAL(HAS_atmega64, test "x$HAS_atmega64" = "xyes")
-
-CHECK_AVR_DEVICE(atmega640)
-AM_CONDITIONAL(HAS_atmega640, test "x$HAS_atmega640" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644)
-AM_CONDITIONAL(HAS_atmega644, test "x$HAS_atmega644" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644a)
-AM_CONDITIONAL(HAS_atmega644a, test "x$HAS_atmega644a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644p)
-AM_CONDITIONAL(HAS_atmega644p, test "x$HAS_atmega644p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644pa)
-AM_CONDITIONAL(HAS_atmega644pa, test "x$HAS_atmega644pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645)
-AM_CONDITIONAL(HAS_atmega645, test "x$HAS_atmega645" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645a)
-AM_CONDITIONAL(HAS_atmega645a, test "x$HAS_atmega645a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645p)
-AM_CONDITIONAL(HAS_atmega645p, test "x$HAS_atmega645p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450)
-AM_CONDITIONAL(HAS_atmega6450, test "x$HAS_atmega6450" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450a)
-AM_CONDITIONAL(HAS_atmega6450a, test "x$HAS_atmega6450a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450p)
-AM_CONDITIONAL(HAS_atmega6450p, test "x$HAS_atmega6450p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649)
-AM_CONDITIONAL(HAS_atmega649, test "x$HAS_atmega649" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649a)
-AM_CONDITIONAL(HAS_atmega649a, test "x$HAS_atmega649a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649p)
-AM_CONDITIONAL(HAS_atmega649p, test "x$HAS_atmega649p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490)
-AM_CONDITIONAL(HAS_atmega6490, test "x$HAS_atmega6490" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490a)
-AM_CONDITIONAL(HAS_atmega6490a, test "x$HAS_atmega6490a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490p)
-AM_CONDITIONAL(HAS_atmega6490p, test "x$HAS_atmega6490p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64c1)
-AM_CONDITIONAL(HAS_atmega64c1, test "x$HAS_atmega64c1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64hve)
-AM_CONDITIONAL(HAS_atmega64hve, test "x$HAS_atmega64hve" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64m1)
-AM_CONDITIONAL(HAS_atmega64m1, test "x$HAS_atmega64m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega128rfa1)
-AM_CONDITIONAL(HAS_atmega128rfa1, test "x$HAS_atmega128rfa1" = "xyes")
-
-CHECK_AVR_DEVICE(m3000)
-AM_CONDITIONAL(HAS_m3000, test "x$HAS_m3000" = "xyes")
-
-
-
-#avr51
-CHECK_AVR_DEVICE(avr51)
-AM_CONDITIONAL(HAS_avr51, test "x$HAS_avr51" = "xyes")
-
-AM_CONDITIONAL(HAS_atmega128, true)
-
-CHECK_AVR_DEVICE(atmega1280)
-AM_CONDITIONAL(HAS_atmega1280, test "x$HAS_atmega1280" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1281)
-AM_CONDITIONAL(HAS_atmega1281, test "x$HAS_atmega1281" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1284p)
-AM_CONDITIONAL(HAS_atmega1284p, test "x$HAS_atmega1284p" = "xyes")
-
-CHECK_AVR_DEVICE(at90can128)
-AM_CONDITIONAL(HAS_at90can128, test "x$HAS_at90can128" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb1286)
-AM_CONDITIONAL(HAS_at90usb1286, test "x$HAS_at90usb1286" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb1287)
-AM_CONDITIONAL(HAS_at90usb1287, test "x$HAS_at90usb1287" = "xyes")
-
-
-# avr6
-CHECK_AVR_DEVICE(avr6)
-AM_CONDITIONAL(HAS_avr6, test "x$HAS_avr6" = "xyes")
-
-CHECK_AVR_DEVICE(atmega2560)
-AM_CONDITIONAL(HAS_atmega2560, test "x$HAS_atmega2560" = "xyes")
-
-CHECK_AVR_DEVICE(atmega2561)
-AM_CONDITIONAL(HAS_atmega2561, test "x$HAS_atmega2561" = "xyes")
-
-
-# avrxmega2
-CHECK_AVR_DEVICE(avrxmega2)
-AM_CONDITIONAL(HAS_avrxmega2, test "x$HAS_avrxmega2" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16a4)
-AM_CONDITIONAL(HAS_atxmega16a4, test "x$HAS_atxmega16a4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16d4)
-AM_CONDITIONAL(HAS_atxmega16d4, test "x$HAS_atxmega16d4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32a4)
-AM_CONDITIONAL(HAS_atxmega32a4, test "x$HAS_atxmega32a4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32d4)
-AM_CONDITIONAL(HAS_atxmega32d4, test "x$HAS_atxmega32d4" = "xyes")
-
-
-# avrxmega4
-CHECK_AVR_DEVICE(avrxmega4)
-AM_CONDITIONAL(HAS_avrxmega4, test "x$HAS_avrxmega4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a3)
-AM_CONDITIONAL(HAS_atxmega64a3, test "x$HAS_atxmega64a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64d3)
-AM_CONDITIONAL(HAS_atxmega64d3, test "x$HAS_atxmega64d3" = "xyes")
-
-
-# avrxmega5
-CHECK_AVR_DEVICE(avrxmega5)
-AM_CONDITIONAL(HAS_avrxmega5, test "x$HAS_avrxmega5" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a1)
-AM_CONDITIONAL(HAS_atxmega64a1, test "x$HAS_atxmega64a1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a1u)
-AM_CONDITIONAL(HAS_atxmega64a1u, test "x$HAS_atxmega64a1u" = "xyes")
-
-
-# avrxmega6
-CHECK_AVR_DEVICE(avrxmega6)
-AM_CONDITIONAL(HAS_avrxmega6, test "x$HAS_avrxmega6" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a3)
-AM_CONDITIONAL(HAS_atxmega128a3, test "x$HAS_atxmega128a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128d3)
-AM_CONDITIONAL(HAS_atxmega128d3, test "x$HAS_atxmega128d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192a3)
-AM_CONDITIONAL(HAS_atxmega192a3, test "x$HAS_atxmega192a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192d3)
-AM_CONDITIONAL(HAS_atxmega192d3, test "x$HAS_atxmega192d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3)
-AM_CONDITIONAL(HAS_atxmega256a3, test "x$HAS_atxmega256a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3b)
-AM_CONDITIONAL(HAS_atxmega256a3b, test "x$HAS_atxmega256a3b" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256d3)
-AM_CONDITIONAL(HAS_atxmega256d3, test "x$HAS_atxmega256d3" = "xyes")
-
-
-# avrxmega7
-CHECK_AVR_DEVICE(avrxmega7)
-AM_CONDITIONAL(HAS_avrxmega7, test "x$HAS_avrxmega7" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a1)
-AM_CONDITIONAL(HAS_atxmega128a1, test "x$HAS_atxmega128a1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a1u)
-AM_CONDITIONAL(HAS_atxmega128a1u, test "x$HAS_atxmega128a1u" = "xyes")
-
-
-# avrtiny10
-CHECK_AVR_DEVICE(avrtiny10)
-AM_CONDITIONAL(HAS_avrtiny10, test "x$HAS_avrtiny10" = "xyes")
-
-CHECK_AVR_DEVICE(attiny4)
-AM_CONDITIONAL(HAS_attiny4, test "x$HAS_attiny4" = "xyes")
-
-CHECK_AVR_DEVICE(attiny5)
-AM_CONDITIONAL(HAS_attiny5, test "x$HAS_attiny5" = "xyes")
-
-CHECK_AVR_DEVICE(attiny9)
-AM_CONDITIONAL(HAS_attiny9, test "x$HAS_attiny9" = "xyes")
-
-CHECK_AVR_DEVICE(attiny10)
-AM_CONDITIONAL(HAS_attiny10, test "x$HAS_attiny10" = "xyes")
-
-CHECK_AVR_DEVICE(attiny20)
-AM_CONDITIONAL(HAS_attiny20, test "x$HAS_attiny20" = "xyes")
-
-CHECK_AVR_DEVICE(attiny40)
-AM_CONDITIONAL(HAS_attiny40, test "x$HAS_attiny40" = "xyes")
-
-
-
-
-# Generate all files from *.in sources.
-
-AC_CONFIG_FILES([
-       Makefile
-       avr-libc.spec
-       avr/Makefile
-       avr/lib/Makefile
-       common/Makefile
-       crt1/Makefile
-       doc/Makefile
-       doc/api/Makefile
-       doc/examples/Makefile
-       include/Makefile
-       include/avr/Makefile
-       include/avr/builtins.h
-       include/compat/Makefile
-       include/util/Makefile
-       include/util/delay.h
-       libc/Makefile
-       libc/misc/Makefile
-       libc/pmstring/Makefile
-       libc/stdio/Makefile
-       libc/stdlib/Makefile
-       libc/string/Makefile
-       libm/Makefile
-       libm/fplib/Makefile
-       scripts/Makefile
-       devtools/Makefile
-])
-
-#avr1 and avr2
-AC_CONFIG_FILES([
-       avr/lib/avr2/Makefile
-       avr/lib/avr2/at90s1200/Makefile
-       avr/lib/avr2/at90s2313/Makefile
-       avr/lib/avr2/at90s2323/Makefile
-       avr/lib/avr2/at90s2333/Makefile
-       avr/lib/avr2/at90s2343/Makefile
-       avr/lib/avr2/at90s4414/Makefile
-       avr/lib/avr2/at90s4433/Makefile
-       avr/lib/avr2/at90s4434/Makefile
-       avr/lib/avr2/at90s8515/Makefile
-       avr/lib/avr2/at90c8534/Makefile
-       avr/lib/avr2/at90s8535/Makefile
-       avr/lib/avr2/attiny11/Makefile
-       avr/lib/avr2/attiny12/Makefile
-       avr/lib/avr2/attiny13/Makefile
-       avr/lib/avr2/attiny15/Makefile
-       avr/lib/avr2/attiny22/Makefile
-       avr/lib/avr2/attiny24/Makefile
-       avr/lib/avr2/attiny25/Makefile
-       avr/lib/avr2/attiny26/Makefile
-       avr/lib/avr2/attiny261/Makefile
-       avr/lib/avr2/attiny28/Makefile
-       avr/lib/avr2/attiny44/Makefile
-       avr/lib/avr2/attiny45/Makefile
-       avr/lib/avr2/attiny461/Makefile
-       avr/lib/avr2/attiny84/Makefile
-       avr/lib/avr2/attiny85/Makefile
-       avr/lib/avr2/attiny861/Makefile
-       avr/lib/avr2/attiny2313/Makefile
-       avr/lib/avr2/at86rf401/Makefile
-])
-
-#avr25
-AC_CONFIG_FILES([
-       avr/lib/avr25/Makefile
-       avr/lib/avr25/at86rf401/Makefile
-       avr/lib/avr25/ata6289/Makefile
-       avr/lib/avr25/attiny13/Makefile
-       avr/lib/avr25/attiny13a/Makefile
-       avr/lib/avr25/attiny2313/Makefile
-       avr/lib/avr25/attiny2313a/Makefile
-       avr/lib/avr25/attiny24/Makefile
-       avr/lib/avr25/attiny24a/Makefile
-       avr/lib/avr25/attiny25/Makefile
-       avr/lib/avr25/attiny261/Makefile
-       avr/lib/avr25/attiny261a/Makefile
-       avr/lib/avr25/attiny4313/Makefile
-       avr/lib/avr25/attiny43u/Makefile
-       avr/lib/avr25/attiny44/Makefile
-       avr/lib/avr25/attiny44a/Makefile
-       avr/lib/avr25/attiny45/Makefile
-       avr/lib/avr25/attiny461/Makefile
-       avr/lib/avr25/attiny461a/Makefile
-       avr/lib/avr25/attiny48/Makefile
-       avr/lib/avr25/attiny84/Makefile
-       avr/lib/avr25/attiny84a/Makefile
-       avr/lib/avr25/attiny85/Makefile
-       avr/lib/avr25/attiny861/Makefile
-       avr/lib/avr25/attiny861a/Makefile
-       avr/lib/avr25/attiny87/Makefile
-       avr/lib/avr25/attiny88/Makefile
-])
-
-#avr3
-AC_CONFIG_FILES([
-       avr/lib/avr3/Makefile
-       avr/lib/avr3/atmega103/Makefile
-       avr/lib/avr3/at43usb320/Makefile
-       avr/lib/avr3/at43usb355/Makefile
-       avr/lib/avr3/at76c711/Makefile
-       avr/lib/avr3/at90usb82/Makefile
-       avr/lib/avr3/at90usb162/Makefile
-])
-
-#avr31
-AC_CONFIG_FILES([
-       avr/lib/avr31/Makefile
-       avr/lib/avr31/atmega103/Makefile
-       avr/lib/avr31/at43usb320/Makefile
-])
-
-#avr35
-AC_CONFIG_FILES([
-       avr/lib/avr35/Makefile
-       avr/lib/avr35/at90usb82/Makefile
-       avr/lib/avr35/at90usb162/Makefile
-       avr/lib/avr35/atmega8u2/Makefile
-       avr/lib/avr35/atmega16u2/Makefile
-       avr/lib/avr35/atmega32u2/Makefile
-       avr/lib/avr35/attiny167/Makefile
-])
-
-#avr4
-AC_CONFIG_FILES([
-       avr/lib/avr4/Makefile
-       avr/lib/avr4/atmega48/Makefile
-       avr/lib/avr4/atmega48a/Makefile
-       avr/lib/avr4/atmega48p/Makefile
-       avr/lib/avr4/atmega8/Makefile
-       avr/lib/avr4/atmega88/Makefile
-       avr/lib/avr4/atmega88a/Makefile
-       avr/lib/avr4/atmega88p/Makefile
-       avr/lib/avr4/atmega88pa/Makefile
-       avr/lib/avr4/atmega8515/Makefile
-       avr/lib/avr4/atmega8535/Makefile
-       avr/lib/avr4/atmega8hva/Makefile
-       avr/lib/avr4/at90pwm1/Makefile
-       avr/lib/avr4/at90pwm2/Makefile
-       avr/lib/avr4/at90pwm2b/Makefile
-       avr/lib/avr4/at90pwm3/Makefile
-       avr/lib/avr4/at90pwm3b/Makefile
-       avr/lib/avr4/at90pwm81/Makefile
-])
-
-#avr5
-AC_CONFIG_FILES([
-       avr/lib/avr5/Makefile
-       avr/lib/avr5/at90can32/Makefile
-       avr/lib/avr5/at90can64/Makefile
-       avr/lib/avr5/at90can128/Makefile
-       avr/lib/avr5/at90pwm216/Makefile
-       avr/lib/avr5/at90pwm316/Makefile
-       avr/lib/avr5/at90scr100/Makefile
-       avr/lib/avr5/at90usb646/Makefile
-       avr/lib/avr5/at90usb647/Makefile
-       avr/lib/avr5/at90usb1286/Makefile
-       avr/lib/avr5/at90usb1287/Makefile
-       avr/lib/avr5/at94k/Makefile 
-       avr/lib/avr5/atmega16/Makefile
-       avr/lib/avr5/atmega16a/Makefile
-       avr/lib/avr5/atmega161/Makefile
-       avr/lib/avr5/atmega162/Makefile
-       avr/lib/avr5/atmega163/Makefile
-       avr/lib/avr5/atmega164a/Makefile
-       avr/lib/avr5/atmega164p/Makefile
-       avr/lib/avr5/atmega165/Makefile
-       avr/lib/avr5/atmega165a/Makefile
-       avr/lib/avr5/atmega165p/Makefile
-       avr/lib/avr5/atmega168/Makefile
-       avr/lib/avr5/atmega168a/Makefile
-       avr/lib/avr5/atmega168p/Makefile
-       avr/lib/avr5/atmega169/Makefile
-       avr/lib/avr5/atmega169a/Makefile
-       avr/lib/avr5/atmega169p/Makefile
-       avr/lib/avr5/atmega169pa/Makefile
-       avr/lib/avr5/atmega16hva/Makefile
-       avr/lib/avr5/atmega16hva2/Makefile
-       avr/lib/avr5/atmega16hvb/Makefile
-       avr/lib/avr5/atmega16hvbrevb/Makefile
-       avr/lib/avr5/atmega16m1/Makefile
-       avr/lib/avr5/atmega16u4/Makefile
-       avr/lib/avr5/atmega32/Makefile
-       avr/lib/avr5/atmega323/Makefile
-       avr/lib/avr5/atmega324a/Makefile
-       avr/lib/avr5/atmega324p/Makefile
-       avr/lib/avr5/atmega324pa/Makefile
-       avr/lib/avr5/atmega325/Makefile
-       avr/lib/avr5/atmega325a/Makefile
-       avr/lib/avr5/atmega325p/Makefile
-       avr/lib/avr5/atmega3250/Makefile
-       avr/lib/avr5/atmega3250a/Makefile
-       avr/lib/avr5/atmega3250p/Makefile
-       avr/lib/avr5/atmega328/Makefile
-       avr/lib/avr5/atmega328p/Makefile
-       avr/lib/avr5/atmega329/Makefile
-       avr/lib/avr5/atmega329a/Makefile
-       avr/lib/avr5/atmega329p/Makefile
-       avr/lib/avr5/atmega329pa/Makefile
-       avr/lib/avr5/atmega3290/Makefile
-       avr/lib/avr5/atmega3290a/Makefile
-       avr/lib/avr5/atmega3290p/Makefile
-       avr/lib/avr5/atmega32c1/Makefile
-       avr/lib/avr5/atmega32hvb/Makefile
-       avr/lib/avr5/atmega32hvbrevb/Makefile
-       avr/lib/avr5/atmega32m1/Makefile
-       avr/lib/avr5/atmega32u4/Makefile
-       avr/lib/avr5/atmega32u6/Makefile
-       avr/lib/avr5/atmega406/Makefile
-       avr/lib/avr5/atmega64/Makefile
-       avr/lib/avr5/atmega640/Makefile
-       avr/lib/avr5/atmega644/Makefile
-       avr/lib/avr5/atmega644a/Makefile
-       avr/lib/avr5/atmega644p/Makefile
-       avr/lib/avr5/atmega644pa/Makefile
-       avr/lib/avr5/atmega645/Makefile
-       avr/lib/avr5/atmega645a/Makefile
-       avr/lib/avr5/atmega645p/Makefile
-       avr/lib/avr5/atmega6450/Makefile
-       avr/lib/avr5/atmega6450a/Makefile
-       avr/lib/avr5/atmega6450p/Makefile
-       avr/lib/avr5/atmega649/Makefile
-       avr/lib/avr5/atmega649a/Makefile
-       avr/lib/avr5/atmega649p/Makefile
-       avr/lib/avr5/atmega6490/Makefile
-       avr/lib/avr5/atmega6490a/Makefile
-       avr/lib/avr5/atmega6490p/Makefile
-       avr/lib/avr5/atmega64c1/Makefile
-       avr/lib/avr5/atmega64hve/Makefile
-       avr/lib/avr5/atmega64m1/Makefile
-       avr/lib/avr5/atmega128/Makefile
-       avr/lib/avr5/atmega1280/Makefile
-       avr/lib/avr5/atmega1281/Makefile
-       avr/lib/avr5/atmega1284p/Makefile
-       avr/lib/avr5/atmega128rfa1/Makefile
-       avr/lib/avr5/m3000/Makefile
-])
-
-#avr51
-AC_CONFIG_FILES([
-       avr/lib/avr51/Makefile
-       avr/lib/avr51/atmega128/Makefile
-       avr/lib/avr51/atmega1280/Makefile
-       avr/lib/avr51/atmega1281/Makefile
-       avr/lib/avr51/atmega1284p/Makefile
-       avr/lib/avr51/atmega128rfa1/Makefile
-       avr/lib/avr51/at90can128/Makefile
-       avr/lib/avr51/at90usb1286/Makefile
-       avr/lib/avr51/at90usb1287/Makefile
-])
-
-#avr6
-AC_CONFIG_FILES([
-       avr/lib/avr6/Makefile
-       avr/lib/avr6/atmega2560/Makefile
-       avr/lib/avr6/atmega2561/Makefile
-])
-
-# avrxmega2
-AC_CONFIG_FILES([
-       avr/lib/avrxmega2/Makefile
-       avr/lib/avrxmega2/atxmega16a4/Makefile
-       avr/lib/avrxmega2/atxmega16d4/Makefile
-       avr/lib/avrxmega2/atxmega32a4/Makefile
-       avr/lib/avrxmega2/atxmega32d4/Makefile
-])
-
-# avrxmega4
-AC_CONFIG_FILES([
-       avr/lib/avrxmega4/Makefile
-       avr/lib/avrxmega4/atxmega64a3/Makefile
-       avr/lib/avrxmega4/atxmega64d3/Makefile
-])
-
-# avrxmega5
-AC_CONFIG_FILES([
-       avr/lib/avrxmega5/Makefile
-       avr/lib/avrxmega5/atxmega64a1/Makefile
-       avr/lib/avrxmega5/atxmega64a1u/Makefile
-])
-
-# avrxmega6
-AC_CONFIG_FILES([
-       avr/lib/avrxmega6/Makefile
-       avr/lib/avrxmega6/atxmega128a3/Makefile
-       avr/lib/avrxmega6/atxmega128d3/Makefile
-       avr/lib/avrxmega6/atxmega192a3/Makefile
-       avr/lib/avrxmega6/atxmega192d3/Makefile
-       avr/lib/avrxmega6/atxmega256a3/Makefile
-       avr/lib/avrxmega6/atxmega256a3b/Makefile
-       avr/lib/avrxmega6/atxmega256d3/Makefile
-])
-
-# avrxmega7
-AC_CONFIG_FILES([
-       avr/lib/avrxmega7/Makefile
-       avr/lib/avrxmega7/atxmega128a1/Makefile
-       avr/lib/avrxmega7/atxmega128a1u/Makefile
-])
-
-
-# avrtiny10
-AC_CONFIG_FILES([
-       avr/lib/avrtiny10/Makefile
-       avr/lib/avrtiny10/attiny4/Makefile
-       avr/lib/avrtiny10/attiny5/Makefile
-       avr/lib/avrtiny10/attiny9/Makefile
-       avr/lib/avrtiny10/attiny10/Makefile
-       avr/lib/avrtiny10/attiny20/Makefile
-       avr/lib/avrtiny10/attiny40/Makefile
-])
-
-
-AC_OUTPUT

Copied: tags/avr-libc-1_7_1-release/configure.ac (from rev 2214, 
trunk/avr-libc/configure.ac)
===================================================================
--- tags/avr-libc-1_7_1-release/configure.ac                            (rev 0)
+++ tags/avr-libc-1_7_1-release/configure.ac    2011-02-16 21:36:51 UTC (rev 
2216)
@@ -0,0 +1,1324 @@
+#                                               -*- Autoconf -*-
+#
+# Copyright (c) 2004,  Theodore A. Roth
+# Copyright (c) 2005,2006,2007,2009  Anatoly Sokolov
+# Copyright (c) 2005,2008  Joerg Wunsch
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the
+#   distribution.
+# * Neither the name of the copyright holders nor the names of
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# $Id$
+#
+# Process this file with autoconf to produce a configure script.
+#
+
+dnl library versioning -- modify these on releases
+dnl        macro name           value            description
+m4_define([avr_libc_major],    [1])dnl           major version
+m4_define([avr_libc_minor],    [7])dnl           minor version
+m4_define([avr_libc_revision], [1])dnl           revision (dot-dot version)
+m4_define([avr_libc_reldate],  [20110216])dnl    release date
+dnl end of library versioning data
+
+dnl odd minor number marks a development branch, append date to version there
+m4_define([avr_libc_version],
+          avr_libc_major.avr_libc_minor.avr_libc_revision)dnl
+m4_define([avr_libc_version_numeric],
+          m4_eval(10000 * avr_libc_major + dnl
+                    100 * avr_libc_minor + dnl
+                          avr_libc_revision))dnl
+
+AC_INIT(avr-libc, avr_libc_version, address@hidden)
+
+AC_PREREQ(2.59)
+AC_REVISION($Revision$)
+
+AC_CONFIG_SRCDIR([doc/examples/demo/demo.c])
+AC_CONFIG_HEADER([config.h])
+
+dnl substitute M4 macros into shell variables
+AVR_LIBC_MAJOR=avr_libc_major
+AVR_LIBC_MINOR=avr_libc_minor
+AVR_LIBC_REVISION=avr_libc_revision
+AVR_LIBC_RELDATE=avr_libc_reldate
+AVR_LIBC_VERSION=avr_libc_version
+AVR_LIBC_VERSION_NUMERIC=avr_libc_version_numeric
+dnl ...and trigger Makefile.in substitutions
+AC_SUBST(AVR_LIBC_MAJOR)
+AC_SUBST(AVR_LIBC_MINOR)
+AC_SUBST(AVR_LIBC_REVISION)
+AC_SUBST(AVR_LIBC_RELDATE)
+AC_SUBST(AVR_LIBC_VERSION)
+AC_SUBST(AVR_LIBC_VERSION_NUMERIC)
+
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+# See if the user specified '--build=`../config.guess` --host=avr' when
+# running ../configure.
+
+AC_MSG_CHECKING([if configuring for cross compile])
+if test "x${build_alias}" = "x${host_alias}"; then
+       if test "x${build_alias}" = "x" ; then
+               build_alias='`./config.guess`'
+       fi
+       AC_MSG_RESULT(no)
+       AC_MSG_WARN()
+       AC_MSG_WARN(AVR-LIBC must be built using an avr cross-compiler.)
+       AC_MSG_WARN(Try configuring with:)
+       AC_MSG_WARN("$0 --build=$build_alias --host=avr")
+       AC_MSG_WARN()
+       AC_MSG_ERROR(aborting configure)
+else
+       AC_MSG_RESULT([yes])
+fi
+
+AC_MSG_CHECKING([if target host is avr])
+case "$host" in
+       avr* )
+               AC_MSG_RESULT([yes])
+               ;;
+       * )
+               AC_MSG_RESULT(no)
+               AC_MSG_WARN()
+               AC_MSG_WARN(Avr-libc must be built using an avr cross-compiler.)
+               AC_MSG_WARN(Try configuring with:)
+               AC_MSG_WARN("$0 --build=$build --host=avr")
+               AC_MSG_WARN()
+               AC_MSG_ERROR(aborting configure)
+               ;;
+esac
+
+## TODO: Write a check for GNU Make
+
+dnl The default check whether the C compiler can create an executable
+dnl is inappropriate for us as it requires an existing library.
+AC_NO_EXECUTABLES
+
+dnl Minimum version of Automake is 1.8.
+dnl We don't want the gzip distribution tarball anymore.
+AM_INIT_AUTOMAKE([1.8 dist-bzip2 no-dist-gzip])
+
+# We don't want touse the cflags from the environment since we need control
+# of this when we're building the libs.
+CFLAGS=""
+
+
+dnl This fix is from Newlib in config/override.m4.
+dnl Fix 2.64 cross compile detection for AVR by not trying to compile fopen.
+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],
+  [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77],
+     [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)], 
m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])])
+
+
+# Checks for programs.
+
+AC_PROG_CC
+AC_CHECK_TOOL(AS, as, as)
+AM_PROG_AS
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR, ar, ar)
+
+# Make sure that we found the right avr cross-compiler.
+
+case "${CC}" in
+   *avr-gcc*) ;;
+   *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
+esac
+case "${AS}" in
+   *avr-as*) ;;
+   *) AC_MSG_ERROR(Wrong assembler found; check the PATH!) ;;
+esac
+case "${AR}" in
+   *avr-ar*) ;;
+   *) AC_MSG_ERROR(Wrong archiver found; check the PATH!) ;;
+esac
+case "${RANLIB}" in
+   *avr-ranlib*) ;;
+   *) AC_MSG_ERROR(Wrong ranlib found; check the PATH!) ;;
+esac
+
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+
+dnl TODO: Check for various tools used to build the documentation. If anything
+dnl is missing, don't build the docs by default.
+
+dnl Disable building of dox by default since it they may not build properly on
+dnl all systems. This isn't optimal, but how do we work around the user not
+dnl having fig2dev and still build all the formats?
+
+AC_ARG_ENABLE(doc,
+[  --enable-doc            build all doc formats (disabled is default)],
+[case "${enableval}" in
+  yes) enable_doc=yes ;;
+  no)  enable_doc=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for global doc option) ;;
+ esac], [enable_doc=no])dnl
+dnl Various documentation options.  By default, we enable all of them,
+dnl i. e. HTML, Postscript, PDF, and Unix-style man pages.
+AC_ARG_ENABLE(html-doc,
+[  --enable-html-doc       build HTML documentation (default)],
+[case "${enableval}" in
+  yes) html_doc=yes ;;
+  no)  html_doc=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for html-doc option) ;;
+ esac], [html_doc=yes])dnl
+
+AC_ARG_ENABLE(pdf-doc,
+[  --enable-pdf-doc        build PDF documentation (default)],
+[case "${enableval}" in
+  yes) pdf_doc=yes ;;
+  no)  pdf_doc=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for pdf-doc option) ;;
+ esac], [pdf_doc=yes])dnl
+
+dnl Man pages are currently not tunable; they'll be built whenever
+dnl the HTML documentation is built.  However, it can be configured
+dnl whether the result is about to be installed or not.
+AC_ARG_ENABLE(man-doc,
+[  --enable-man-doc        build Unix-style manual pages (default)],
+[case "${enableval}" in
+  yes) man_doc=yes ;;
+  no)  man_doc=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for man-doc option) ;;
+ esac], [man_doc=yes])dnl
+
+AC_ARG_ENABLE(versioned-doc,
+[  --enable-versioned-doc  install docs in directory with version name 
(default)],
+[case "${enableval}" in
+  yes) versioned_doc=yes ;;
+  no)  versioned_doc=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for versioned-doc option) ;;
+ esac], [versioned_doc=yes])dnl
+
+dnl troth/2002-07-12: The CHECK_DOXYGEN macro should be moved to a config
+dnl dir. I put it here until I figure out how to integrate the config dir.
+
+dnl
+dnl @synopsis CHECK_DOXYGEN
+dnl
+dnl This macro checks if doxygen is installed on the build system
+dnl
+dnl @version Id: check_doxygen.m4,v 1.2 2002/02/10 23:22:40 troth Exp
+dnl @author Theodore A. Roth <address@hidden>
+dnl
+AC_DEFUN([CHECK_DOXYGEN],[dnl
+dnl
+AC_MSG_CHECKING([for doxygen])
+dox_ver=`doxygen --version 2>/dev/null`
+if test "x$dox_ver" = "x"; then
+       AC_MSG_RESULT(no)
+else
+       # FIXME: should also check for dox_ver >= 1.4.1
+       AC_MSG_RESULT(yes)
+       if test "$pdf_doc" = "yes"; then
+               AC_MSG_NOTICE([Enabling PDF docs])
+               TARGET_DOX_PDF=dox-pdf
+               INSTALL_DOX_PDF=install-dox-pdf
+       fi
+       if test "$html_doc" = "yes"; then
+               AC_MSG_NOTICE([Enabling HTML docs])
+               TARGET_DOX_HTML=dox-html
+               INSTALL_DOX_HTML=install-dox-html
+       fi
+dnl The creation of man pages is a side-effect of the HTML
+dnl generation, so a different target is only needed for installation.
+       if test "$man_doc" = "yes"; then
+               AC_MSG_NOTICE([Enabling man pages])
+               TARGET_DOX_HTML=dox-html
+               INSTALL_DOX_MAN=install-dox-man
+       fi
+fi
+dnl
+AC_SUBST(TARGET_DOX_PDF)
+AC_SUBST(TARGET_DOX_HTML)
+AC_SUBST(INSTALL_DOX_PDF)
+AC_SUBST(INSTALL_DOX_HTML)
+AC_SUBST(INSTALL_DOX_MAN)
+])dnl
+
+CHECK_DOXYGEN
+
+dnl
+dnl @synopsis CHECK_PNG_UTILS
+dnl
+dnl This macro checks if pngtopnm and pnmtopng are installed. If they are not
+dnl installed we just fake it with "cat".
+dnl
+dnl We use these in the dox to insert transparency into the png images as such:
+dnl
+dnl   $ pngtopnm foo.png > tmp.pnm
+dnl   $ pnmtopng -transparent white tmp.pnm > foo.png
+dnl
+dnl @version 
+dnl @author Theodore A. Roth <address@hidden> and Eric B. Weddington 
<address@hidden>
+dnl
+AC_DEFUN([CHECK_PNG_UTILS],[dnl
+dnl
+AC_MSG_CHECKING([for pngtopnm])
+has_pngtopnm=`pngtopnm --version 2>&1 | grep -c -i Version`
+if test "$has_pngtopnm" = "1"; then
+       AC_MSG_RESULT(yes)
+       PNGTOPNM="pngtopnm"
+else
+       AC_MSG_RESULT(no)
+       PNGTOPNM="cat"
+fi
+dnl
+AC_MSG_CHECKING([for pnmtopng])
+has_pnmtopng=`pnmtopng --version 2>&1 | grep -c -i Version`
+if test "$has_pnmtopng" = "1"; then
+       AC_MSG_RESULT(yes)
+       PNMTOPNG="pnmtopng"
+else
+       AC_MSG_RESULT(no)
+       PNMTOPNG="cat"
+    PNGTOPNM="cat"
+fi
+AC_SUBST(PNGTOPNM)
+AC_SUBST(PNMTOPNG)
+])dnl
+
+CHECK_PNG_UTILS
+
+if test "$versioned_doc" = "yes"; then
+       DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc-$(VERSION)'
+       AVR_LIBC_USER_MANUAL="avr-libc-user-manual-${VERSION}"
+else
+       DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc'
+       AVR_LIBC_USER_MANUAL="avr-libc-user-manual"
+fi
+
+dnl We only want to build the docs if the user has passed
+dnl "--enable-doc" to configure.
+if test "$enable_doc" = "yes"; then
+       DOCSDIR='api'
+else
+       DOCSDIR=''
+fi
+
+AC_SUBST(DOCSDIR)
+AC_SUBST(AVR_LIBC_USER_MANUAL)
+AC_SUBST(DOC_INST_DIR)
+
+FNO_JUMP_TABLES=""
+AC_SUBST(FNO_JUMP_TABLES)
+
+HAS_DELAY_CYCLES=0
+AC_SUBST(HAS_DELAY_CYCLES)
+
+AC_DEFUN(
+  CHECK_MNO_TABLEJUMP,
+  [
+    old_CC=${CC}
+    old_CFLAGS=${CFLAGS}
+    CFLAGS="-mno-tablejump"
+    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
+    AC_MSG_CHECKING(whether ${CC} supports -mno-tablejump)
+    AC_COMPILE_IFELSE(
+      [AC_LANG_SOURCE([],[])],
+      [has_mno_tablejump=yes],
+      [has_mno_tablejump=no]
+    )
+    if test "x$has_mno_tablejump" = "xyes"
+    then
+      FNO_JUMP_TABLES="-mno-tablejump"
+    fi
+    AC_MSG_RESULT($has_mno_tablejump)
+    CC=${old_CC}
+    CFLAGS=${old_CFLAGS}
+  ]
+)
+
+AC_DEFUN(
+  CHECK_FNO_JUMP_TABLES,
+  [
+    old_CC=${CC}
+    old_CFLAGS=${CFLAGS}
+    CFLAGS="-fno-jump-tables"
+    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
+    AC_MSG_CHECKING(whether ${CC} supports -fno-jump-tables)
+    AC_COMPILE_IFELSE(
+      [AC_LANG_SOURCE([],[])],
+      [has_fno_jump_tables=yes],
+      [has_fno_jump_tables=no]
+    )
+    if test "x$has_fno_jump_tables" = "xyes"
+    then
+      FNO_JUMP_TABLES="-fno-jump-tables"
+    fi
+    AC_MSG_RESULT($has_fno_jump_tables)
+    CC=${old_CC}
+    CFLAGS=${old_CFLAGS}
+  ]
+)
+
+AC_DEFUN(
+  CHECK_BUILTIN_DELAY_CYCLES,
+  [
+    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
+    AC_MSG_CHECKING(whether ${CC} supports __builtin_avr_delay_cycles)
+    echo "extern void __builtin_avr_delay_cycles(unsigned long);\
+    int main(void) { __builtin_avr_delay_cycles(42); return 0; }" |\
+    ${CC} -S -xc -o- - |\
+    grep __builtin_avr_delay_cycles >/dev/null
+    if test "$?" != "0"
+    then
+      HAS_DELAY_CYCLES=1
+      has_delay_cycles="yes"
+    else
+      has_delay_cycles="no"
+    fi
+    AC_MSG_RESULT($has_delay_cycles)
+    CC=${old_CC}
+  ]
+)
+
+CHECK_MNO_TABLEJUMP
+CHECK_FNO_JUMP_TABLES
+CHECK_BUILTIN_DELAY_CYCLES
+
+dnl Some devices are only handled by newer version of gcc. This macro lets us
+dnl probe to see if the installed avr-gcc supports a questionable device.
+AC_DEFUN(
+  CHECK_AVR_DEVICE,
+  [
+    old_CC=${CC}
+    old_CFLAGS=${CFLAGS}
+    CFLAGS="-mmcu=$1"
+    CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
+    AC_MSG_CHECKING(if ${CC} has support for $1)
+    AC_COMPILE_IFELSE(
+      [AC_LANG_SOURCE([],[])],
+      [has_dev_support=yes],
+      [has_dev_support=no]
+    )
+    if test "x$has_dev_support" = "xyes"
+    then
+      HAS_$1=yes
+    fi
+    AC_MSG_RESULT($has_dev_support)
+    CC=${old_CC}
+    CFLAGS=${old_CFLAGS}
+  ]
+)
+
+
+# avr1
+AM_CONDITIONAL(HAS_avr1, true)
+AM_CONDITIONAL(HAS_at90s1200, true)
+AM_CONDITIONAL(HAS_attiny11, true)
+AM_CONDITIONAL(HAS_attiny12, true)
+AM_CONDITIONAL(HAS_attiny15, true)
+AM_CONDITIONAL(HAS_attiny28, true)
+
+
+# avr2
+AM_CONDITIONAL(HAS_avr2, true)
+AM_CONDITIONAL(HAS_at90s2313, true)
+AM_CONDITIONAL(HAS_at90s2323, true)
+AM_CONDITIONAL(HAS_at90s2333, true)
+AM_CONDITIONAL(HAS_at90s2343, true)
+AM_CONDITIONAL(HAS_at90s4414, true)
+AM_CONDITIONAL(HAS_at90s4433, true)
+AM_CONDITIONAL(HAS_at90s4434, true)
+AM_CONDITIONAL(HAS_at90s8515, true)
+AM_CONDITIONAL(HAS_at90c8534, true)
+AM_CONDITIONAL(HAS_at90s8535, true)
+AM_CONDITIONAL(HAS_attiny22, true)
+AM_CONDITIONAL(HAS_attiny26, true)
+
+
+#avr25
+CHECK_AVR_DEVICE(avr25)
+AM_CONDITIONAL(HAS_avr25, test "x$HAS_avr25" = "xyes")
+
+CHECK_AVR_DEVICE(ata6289)
+AM_CONDITIONAL(HAS_ata6289, test "x$HAS_ata6289" = "xyes")
+
+CHECK_AVR_DEVICE(attiny13)
+AM_CONDITIONAL(HAS_attiny13, test "x$HAS_attiny13" = "xyes")
+
+CHECK_AVR_DEVICE(attiny13a)
+AM_CONDITIONAL(HAS_attiny13a, test "x$HAS_attiny13a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny2313)
+AM_CONDITIONAL(HAS_attiny2313, test "x$HAS_attiny2313" = "xyes")
+
+CHECK_AVR_DEVICE(attiny2313a)
+AM_CONDITIONAL(HAS_attiny2313a, test "x$HAS_attiny2313a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny24)
+AM_CONDITIONAL(HAS_attiny24, test "x$HAS_attiny24" = "xyes")
+
+CHECK_AVR_DEVICE(attiny24a)
+AM_CONDITIONAL(HAS_attiny24a, test "x$HAS_attiny24a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny25)
+AM_CONDITIONAL(HAS_attiny25, test "x$HAS_attiny25" = "xyes")
+
+CHECK_AVR_DEVICE(attiny261)
+AM_CONDITIONAL(HAS_attiny261, test "x$HAS_attiny261" = "xyes")
+
+CHECK_AVR_DEVICE(attiny261a)
+AM_CONDITIONAL(HAS_attiny261a, test "x$HAS_attiny261a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny43u)
+AM_CONDITIONAL(HAS_attiny43u, test "x$HAS_attiny43u" = "xyes")
+
+CHECK_AVR_DEVICE(attiny4313)
+AM_CONDITIONAL(HAS_attiny4313, test "x$HAS_attiny4313" = "xyes")
+
+CHECK_AVR_DEVICE(attiny44)
+AM_CONDITIONAL(HAS_attiny44, test "x$HAS_attiny44" = "xyes")
+
+CHECK_AVR_DEVICE(attiny44a)
+AM_CONDITIONAL(HAS_attiny44a, test "x$HAS_attiny44a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny45)
+AM_CONDITIONAL(HAS_attiny45, test "x$HAS_attiny45" = "xyes")
+
+CHECK_AVR_DEVICE(attiny461)
+AM_CONDITIONAL(HAS_attiny461, test "x$HAS_attiny461" = "xyes")
+
+CHECK_AVR_DEVICE(attiny461a)
+AM_CONDITIONAL(HAS_attiny461a, test "x$HAS_attiny461a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny48)
+AM_CONDITIONAL(HAS_attiny48, test "x$HAS_attiny48" = "xyes")
+
+CHECK_AVR_DEVICE(attiny84)
+AM_CONDITIONAL(HAS_attiny84, test "x$HAS_attiny84" = "xyes")
+
+CHECK_AVR_DEVICE(attiny84a)
+AM_CONDITIONAL(HAS_attiny84a, test "x$HAS_attiny84a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny85)
+AM_CONDITIONAL(HAS_attiny85, test "x$HAS_attiny85" = "xyes")
+
+CHECK_AVR_DEVICE(attiny861)
+AM_CONDITIONAL(HAS_attiny861, test "x$HAS_attiny861" = "xyes")
+
+CHECK_AVR_DEVICE(attiny861a)
+AM_CONDITIONAL(HAS_attiny861a, test "x$HAS_attiny861a" = "xyes")
+
+CHECK_AVR_DEVICE(attiny87)
+AM_CONDITIONAL(HAS_attiny87, test "x$HAS_attiny87" = "xyes")
+
+CHECK_AVR_DEVICE(attiny88)
+AM_CONDITIONAL(HAS_attiny88, test "x$HAS_attiny88" = "xyes")
+
+CHECK_AVR_DEVICE(at86rf401)
+AM_CONDITIONAL(HAS_at86rf401, test "x$HAS_at86rf401" = "xyes")
+
+
+# avr3
+AM_CONDITIONAL(HAS_avr3, true)
+AM_CONDITIONAL(HAS_at43usb320, true)
+AM_CONDITIONAL(HAS_at43usb355, true)
+AM_CONDITIONAL(HAS_at76c711, true)
+
+#avr31
+CHECK_AVR_DEVICE(avr31)
+AM_CONDITIONAL(HAS_avr31, test "x$HAS_avr31" = "xyes")
+
+AM_CONDITIONAL(HAS_atmega103, true)
+
+
+#avr35
+CHECK_AVR_DEVICE(avr35)
+AM_CONDITIONAL(HAS_avr35, test "x$HAS_avr35" = "xyes")
+
+CHECK_AVR_DEVICE(at90usb82)
+AM_CONDITIONAL(HAS_at90usb82, test "x$HAS_at90usb82" = "xyes")
+
+CHECK_AVR_DEVICE(at90usb162)
+AM_CONDITIONAL(HAS_at90usb162, test "x$HAS_at90usb162" = "xyes")
+
+CHECK_AVR_DEVICE(atmega8u2)
+AM_CONDITIONAL(HAS_atmega8u2, test "x$HAS_atmega8u2" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16u2)
+AM_CONDITIONAL(HAS_atmega16u2, test "x$HAS_atmega16u2" = "xyes")
+
+CHECK_AVR_DEVICE(atmega32u2)
+AM_CONDITIONAL(HAS_atmega32u2, test "x$HAS_atmega32u2" = "xyes")
+
+CHECK_AVR_DEVICE(attiny167)
+AM_CONDITIONAL(HAS_attiny167, test "x$HAS_attiny167" = "xyes")
+
+
+# avr4
+AM_CONDITIONAL(HAS_avr4, true)
+AM_CONDITIONAL(HAS_atmega8, true)
+AM_CONDITIONAL(HAS_atmega8515, true)
+AM_CONDITIONAL(HAS_atmega8535, true)
+
+CHECK_AVR_DEVICE(atmega48)
+AM_CONDITIONAL(HAS_atmega48, test "x$HAS_atmega48" = "xyes")
+
+CHECK_AVR_DEVICE(atmega48a)
+AM_CONDITIONAL(HAS_atmega48a, test "x$HAS_atmega48a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega48p)
+AM_CONDITIONAL(HAS_atmega48p, test "x$HAS_atmega48p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega88)
+AM_CONDITIONAL(HAS_atmega88, test "x$HAS_atmega88" = "xyes")
+
+CHECK_AVR_DEVICE(atmega88a)
+AM_CONDITIONAL(HAS_atmega88a, test "x$HAS_atmega88a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega88p)
+AM_CONDITIONAL(HAS_atmega88p, test "x$HAS_atmega88p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega88pa)
+AM_CONDITIONAL(HAS_atmega88pa, test "x$HAS_atmega88pa" = "xyes")
+
+CHECK_AVR_DEVICE(atmega8hva)
+AM_CONDITIONAL(HAS_atmega8hva, test "x$HAS_atmega8hva" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm1)
+AM_CONDITIONAL(HAS_at90pwm1, test "x$HAS_at90pwm1" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm2)
+AM_CONDITIONAL(HAS_at90pwm2, test "x$HAS_at90pwm2" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm2b)
+AM_CONDITIONAL(HAS_at90pwm2b, test "x$HAS_at90pwm2b" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm3)
+AM_CONDITIONAL(HAS_at90pwm3, test "x$HAS_at90pwm3" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm3b)
+AM_CONDITIONAL(HAS_at90pwm3b, test "x$HAS_at90pwm3b" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm81)
+AM_CONDITIONAL(HAS_at90pwm81, test "x$HAS_at90pwm81" = "xyes")
+
+
+# avr5
+AM_CONDITIONAL(HAS_avr5, true)
+
+CHECK_AVR_DEVICE(at90can32)
+AM_CONDITIONAL(HAS_at90can32, test "x$HAS_at90can32" = "xyes")
+
+CHECK_AVR_DEVICE(at90can64)
+AM_CONDITIONAL(HAS_at90can64, test "x$HAS_at90can64" = "xyes")
+
+CHECK_AVR_DEVICE(at90scr100)
+AM_CONDITIONAL(HAS_at90scr100, test "x$HAS_at90scr100" = "xyes")
+
+CHECK_AVR_DEVICE(at90usb646)
+AM_CONDITIONAL(HAS_at90usb646, test "x$HAS_at90usb646" = "xyes")
+
+CHECK_AVR_DEVICE(at90usb647)
+AM_CONDITIONAL(HAS_at90usb647, test "x$HAS_at90usb647" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm316)
+AM_CONDITIONAL(HAS_at90pwm316, test "x$HAS_at90pwm316" = "xyes")
+
+CHECK_AVR_DEVICE(at90pwm216)
+AM_CONDITIONAL(HAS_at90pwm216, test "x$HAS_at90pwm216" = "xyes")
+
+CHECK_AVR_DEVICE(at94k)
+AM_CONDITIONAL(HAS_at94k, test "x$HAS_at94k" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16)
+AM_CONDITIONAL(HAS_atmega16, test "x$HAS_atmega16" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16a)
+AM_CONDITIONAL(HAS_atmega16a, test "x$HAS_atmega16a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega161)
+AM_CONDITIONAL(HAS_atmega161, test "x$HAS_atmega161" = "xyes")
+
+CHECK_AVR_DEVICE(atmega162)
+AM_CONDITIONAL(HAS_atmega162, test "x$HAS_atmega162" = "xyes")
+
+CHECK_AVR_DEVICE(atmega163)
+AM_CONDITIONAL(HAS_atmega163, test "x$HAS_atmega163" = "xyes")
+
+CHECK_AVR_DEVICE(atmega164a)
+AM_CONDITIONAL(HAS_atmega164a, test "x$HAS_atmega164a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega164p)
+AM_CONDITIONAL(HAS_atmega164p, test "x$HAS_atmega164p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega165)
+AM_CONDITIONAL(HAS_atmega165, test "x$HAS_atmega165" = "xyes")
+
+CHECK_AVR_DEVICE(atmega165a)
+AM_CONDITIONAL(HAS_atmega165a, test "x$HAS_atmega165a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega165p)
+AM_CONDITIONAL(HAS_atmega165p, test "x$HAS_atmega165p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega168)
+AM_CONDITIONAL(HAS_atmega168, test "x$HAS_atmega168" = "xyes")
+
+CHECK_AVR_DEVICE(atmega168a)
+AM_CONDITIONAL(HAS_atmega168a, test "x$HAS_atmega168a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega168p)
+AM_CONDITIONAL(HAS_atmega168p, test "x$HAS_atmega168p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega169)
+AM_CONDITIONAL(HAS_atmega169, test "x$HAS_atmega169" = "xyes")
+
+CHECK_AVR_DEVICE(atmega169a)
+AM_CONDITIONAL(HAS_atmega169a, test "x$HAS_atmega169a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega169p)
+AM_CONDITIONAL(HAS_atmega169p, test "x$HAS_atmega169p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega169pa)
+AM_CONDITIONAL(HAS_atmega169pa, test "x$HAS_atmega169pa" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16hva)
+AM_CONDITIONAL(HAS_atmega16hva, test "x$HAS_atmega16hva" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16hva2)
+AM_CONDITIONAL(HAS_atmega16hva2, test "x$HAS_atmega16hva2" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16hvb)
+AM_CONDITIONAL(HAS_atmega16hvb, test "x$HAS_atmega16hvb" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16hvbrevb)
+AM_CONDITIONAL(HAS_atmega16hvbrevb, test "x$HAS_atmega16hvbrevb" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16m1)
+AM_CONDITIONAL(HAS_atmega16m1, test "x$HAS_atmega16m1" = "xyes")
+
+CHECK_AVR_DEVICE(atmega16u4)
+AM_CONDITIONAL(HAS_atmega16u4, test "x$HAS_atmega16u4" = "xyes")
+
+CHECK_AVR_DEVICE(atmega32)
+AM_CONDITIONAL(HAS_atmega32, test "x$HAS_atmega32" = "xyes")
+
+CHECK_AVR_DEVICE(atmega323)
+AM_CONDITIONAL(HAS_atmega323, test "x$HAS_atmega323" = "xyes")
+
+CHECK_AVR_DEVICE(atmega324a)
+AM_CONDITIONAL(HAS_atmega324a, test "x$HAS_atmega324a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega324p)
+AM_CONDITIONAL(HAS_atmega324p, test "x$HAS_atmega324p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega324pa)
+AM_CONDITIONAL(HAS_atmega324pa, test "x$HAS_atmega324pa" = "xyes")
+
+CHECK_AVR_DEVICE(atmega325)
+AM_CONDITIONAL(HAS_atmega325, test "x$HAS_atmega325" = "xyes")
+
+CHECK_AVR_DEVICE(atmega325a)
+AM_CONDITIONAL(HAS_atmega325a, test "x$HAS_atmega325a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega325p)
+AM_CONDITIONAL(HAS_atmega325p, test "x$HAS_atmega325p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3250)
+AM_CONDITIONAL(HAS_atmega3250, test "x$HAS_atmega3250" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3250a)
+AM_CONDITIONAL(HAS_atmega3250a, test "x$HAS_atmega3250a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3250p)
+AM_CONDITIONAL(HAS_atmega3250p, test "x$HAS_atmega3250p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega328)
+AM_CONDITIONAL(HAS_atmega328, test "x$HAS_atmega328" = "xyes")
+
+CHECK_AVR_DEVICE(atmega328p)
+AM_CONDITIONAL(HAS_atmega328p, test "x$HAS_atmega328p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega329)
+AM_CONDITIONAL(HAS_atmega329, test "x$HAS_atmega329" = "xyes")
+
+CHECK_AVR_DEVICE(atmega329a)
+AM_CONDITIONAL(HAS_atmega329a, test "x$HAS_atmega329a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega329p)
+AM_CONDITIONAL(HAS_atmega329p, test "x$HAS_atmega329p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega329pa)
+AM_CONDITIONAL(HAS_atmega329pa, test "x$HAS_atmega329pa" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3290)
+AM_CONDITIONAL(HAS_atmega3290, test "x$HAS_atmega3290" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3290a)
+AM_CONDITIONAL(HAS_atmega3290a, test "x$HAS_atmega3290a" = "xyes")
+
+CHECK_AVR_DEVICE(atmega3290p)
+AM_CONDITIONAL(HAS_atmega3290p, test "x$HAS_atmega3290p" = "xyes")
+
+CHECK_AVR_DEVICE(atmega32c1)

@@ Diff output truncated at 153600 characters. @@



reply via email to

[Prev in Thread] Current Thread [Next in Thread]