re PR target/54641 (Wrong warning flags for building avr-c.o, fails to build)
[platform/upstream/gcc.git] / gcc / config / avr / t-avr
index da3264c..10749d7 100644 (file)
-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) $@