-LIB1ASMSRC = avr/libgcc.S
-LIB1ASMFUNCS = \
- _mulqi3 \
- _mulhi3 \
- _mulsi3 \
- _udivmodqi4 \
- _divmodqi4 \
- _udivmodhi4 \
- _divmodhi4 \
- _udivmodsi4 \
- _divmodsi4 \
- _prologue \
- _epilogue \
- _exit \
- _cleanup \
- _tablejump \
- _copy_data \
- _clear_bss \
- _ctors \
- _dtors
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+# 2009, 2010, 2011 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
-# We do not have the DF type.
-# Most of the C functions in libgcc2 use almost all registers,
-# so use -mcall-prologues for smaller code size.
-TARGET_LIBGCC2_CFLAGS = -DDF=SF -Dinhibit_libc -mcall-prologues -Os
+driver-avr.o: $(srcdir)/config/avr/driver-avr.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/avr/t-avr
- echo '#define FLOAT' > fp-bit.c
- echo '#define FLOAT_ONLY' >> fp-bit.c
- echo '#define CMPtype QItype' >> fp-bit.c
- echo '#define DF SF' >> fp-bit.c
- echo '#define DI SI' >> fp-bit.c
- echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
- echo '#define SMALL_MACHINE' >> fp-bit.c
- echo 'typedef int QItype __attribute__ ((mode (QI)));' >> fp-bit.c
- cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+avr-devices.o: $(srcdir)/config/avr/avr-devices.c \
+ $(srcdir)/config/avr/avr-mcus.def \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-FPBIT = fp-bit.c
+avr-c.o: $(srcdir)/config/avr/avr-c.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_COMMON_H)
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-MULTILIB_OPTIONS = mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr4/mmcu=avr5
-MULTILIB_DIRNAMES = avr2 avr25 avr3 avr4 avr5
+avr-log.o: $(srcdir)/config/avr/avr-log.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(INPUT_H) dumpfile.h
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-# The many avr2 matches are not listed here - this is the default.
-MULTILIB_MATCHES = \
- mmcu?avr25=mmcu?attiny13 \
- mmcu?avr25=mmcu?attiny2313 \
- mmcu?avr25=mmcu?attiny24 \
- mmcu?avr25=mmcu?attiny44 \
- mmcu?avr25=mmcu?attiny84 \
- mmcu?avr25=mmcu?attiny25 \
- mmcu?avr25=mmcu?attiny45 \
- mmcu?avr25=mmcu?attiny85 \
- mmcu?avr25=mmcu?attiny261 \
- mmcu?avr25=mmcu?attiny461 \
- mmcu?avr25=mmcu?attiny861 \
- mmcu?avr25=mmcu?attiny43u \
- mmcu?avr25=mmcu?attiny48 \
- mmcu?avr25=mmcu?at86rf401 \
- mmcu?avr3=mmcu?atmega103 \
- mmcu?avr3=mmcu?at43usb320 \
- mmcu?avr3=mmcu?at43usb355 \
- mmcu?avr3=mmcu?at76c711 \
- mmcu?avr4=mmcu?atmega48 \
- mmcu?avr4=mmcu?atmega48p \
- mmcu?avr4=mmcu?atmega8 \
- mmcu?avr4=mmcu?atmega8515 \
- mmcu?avr4=mmcu?atmega8535 \
- mmcu?avr4=mmcu?atmega88 \
- mmcu?avr4=mmcu?atmega88p \
- mmcu?avr4=mmcu?atmega8hva \
- mmcu?avr4=mmcu?at90pwm1 \
- mmcu?avr4=mmcu?at90pwm2 \
- mmcu?avr4=mmcu?at90pwm2b \
- mmcu?avr4=mmcu?at90pwm3 \
- mmcu?avr4=mmcu?at90pwm3b \
- mmcu?avr5=mmcu?atmega16 \
- mmcu?avr5=mmcu?atmega161 \
- mmcu?avr5=mmcu?atmega162 \
- mmcu?avr5=mmcu?atmega163 \
- mmcu?avr5=mmcu?atmega164p \
- mmcu?avr5=mmcu?atmega165 \
- mmcu?avr5=mmcu?atmega165p \
- mmcu?avr5=mmcu?atmega168 \
- mmcu?avr5=mmcu?atmega168p \
- mmcu?avr5=mmcu?atmega169 \
- mmcu?avr5=mmcu?atmega169p \
- mmcu?avr5=mmcu?atmega32 \
- mmcu?avr5=mmcu?atmega323 \
- mmcu?avr5=mmcu?atmega324p \
- mmcu?avr5=mmcu?atmega325 \
- mmcu?avr5=mmcu?atmega325p \
- mmcu?avr5=mmcu?atmega3250 \
- mmcu?avr5=mmcu?atmega3250p \
- mmcu?avr5=mmcu?atmega328p \
- mmcu?avr5=mmcu?atmega329 \
- mmcu?avr5=mmcu?atmega329p \
- mmcu?avr5=mmcu?atmega3290 \
- mmcu?avr5=mmcu?atmega3290p \
- mmcu?avr5=mmcu?atmega406 \
- mmcu?avr5=mmcu?atmega64 \
- mmcu?avr5=mmcu?atmega640 \
- mmcu?avr5=mmcu?atmega644 \
- mmcu?avr5=mmcu?atmega644p \
- mmcu?avr5=mmcu?atmega645 \
- mmcu?avr5=mmcu?atmega6450 \
- mmcu?avr5=mmcu?atmega649 \
- mmcu?avr5=mmcu?atmega6490 \
- mmcu?avr5=mmcu?atmega128 \
- mmcu?avr5=mmcu?atmega1280 \
- mmcu?avr5=mmcu?atmega1281 \
- mmcu?avr5=mmcu?atmega16hva \
- mmcu?avr5=mmcu?at90can32 \
- mmcu?avr5=mmcu?at90can64 \
- mmcu?avr5=mmcu?at90can128 \
- mmcu?avr5=mmcu?at90pwm216 \
- mmcu?avr5=mmcu?at90pwm316 \
- mmcu?avr5=mmcu?at90usb82 \
- mmcu?avr5=mmcu?at90usb162 \
- mmcu?avr5=mmcu?at90usb646 \
- mmcu?avr5=mmcu?at90usb647 \
- mmcu?avr5=mmcu?at90usb1286 \
- mmcu?avr5=mmcu?at90usb1287 \
- mmcu?avr5=mmcu?at94k
+avr.o avr-c.o: $(srcdir)/config/avr/builtins.def
-MULTILIB_EXCEPTIONS =
+# Files and Variables auto-generated from avr-mcus.def
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
+AVR_MCUS = $(srcdir)/config/avr/avr-mcus.def
+
+$(srcdir)/config/avr/avr-tables.opt: $(srcdir)/config/avr/genopt.sh $(AVR_MCUS)
+ $(SHELL) $< $(AVR_MCUS) > $@
+
+gen-avr-mmcu-texi$(build_exeext): $(srcdir)/config/avr/gen-avr-mmcu-texi.c \
+ $(AVR_MCUS) $(srcdir)/config/avr/avr-devices.c \
+ $(srcdir)/config/avr/avr-arch.h
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $< -o $@
+
+# Make sure that the -mmcu= documentation is in sync with the compiler.
+$(srcdir)/doc/avr-mmcu.texi: s-avr-mmcu-texi; @true
+
+# invoke.texi @includes avr-mmcu.texi. Put this dependency here instead
+# of in the global Makefile so that developers of other backends are not
+# bothered with AVR stuff.
+$(srcdir)/doc/invoke.texi: $(srcdir)/doc/avr-mmcu.texi
+
+# Ensure that device support is in sync with -mmcu= documentation.
+s-avr-mmcu-texi: gen-avr-mmcu-texi$(build_exeext)
+ $(RUN_GEN) ./$< > tmp-avr-mmcu.texi
+ $(SHELL) $(srcdir)/../move-if-change tmp-avr-mmcu.texi avr-mmcu.texi
+ @if cmp -s $(srcdir)/doc/avr-mmcu.texi avr-mmcu.texi; then \
+ $(STAMP) $@; \
+ else \
+ echo >&2 ; \
+ echo "***" >&2 ; \
+ echo "*** Verify that you have permission to grant a" >&2 ; \
+ echo "*** GFDL license for all new text in" >&2 ; \
+ echo "*** avr-mmcu.texi, then copy it to $(srcdir)/doc/avr-mmcu.texi" >&2 ; \
+ echo "***" >&2 ; \
+ false; \
+ fi
+
+# MULTILIB_OPTIONS
+# MULTILIB_DIRNAMES
+# MULTILIB_EXCEPTIONS
+# MULTILIB_MATCHES
+$(srcdir)/config/avr/t-multilib: s-avr-mlib; @true
+
+s-mlib: $(srcdir)/config/avr/t-multilib
+
+s-avr-mlib: $(srcdir)/config/avr/genmultilib.awk $(AVR_MCUS)
+ $(AWK) -f $< -v FORMAT=Makefile $< $(AVR_MCUS) > tmp-avr-mlib
+ $(SHELL) $(srcdir)/../move-if-change \
+ tmp-avr-mlib $(srcdir)/config/avr/t-multilib
+ $(STAMP) $@