# Copyright (C) 2008-2021 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/>.

OPTIONS_H_EXTRA += $(srcdir)/config/i386/stringop.def
TM_H += $(srcdir)/config/i386/x86-tune.def \
	$(srcdir)/common/config/i386/i386-cpuinfo.h
PASSES_EXTRA += $(srcdir)/config/i386/i386-passes.def

i386-c.o: $(srcdir)/config/i386/i386-c.c
	  $(COMPILE) $<
	  $(POSTCOMPILE)

x86-tune-sched.o: $(srcdir)/config/i386/x86-tune-sched.c
	  $(COMPILE) $<
	  $(POSTCOMPILE)

x86-tune-sched-bd.o: $(srcdir)/config/i386/x86-tune-sched-bd.c
	  $(COMPILE) $<
	  $(POSTCOMPILE)

x86-tune-sched-atom.o: $(srcdir)/config/i386/x86-tune-sched-atom.c
	  $(COMPILE) $<
	  $(POSTCOMPILE)

x86-tune-sched-core.o: $(srcdir)/config/i386/x86-tune-sched-core.c
	  $(COMPILE) $<
	  $(POSTCOMPILE)

i386-d.o: $(srcdir)/config/i386/i386-d.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386-options.o: $(srcdir)/config/i386/i386-options.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386-builtins.o: $(srcdir)/config/i386/i386-builtins.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386-expand.o: $(srcdir)/config/i386/i386-expand.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386-features.o: $(srcdir)/config/i386/i386-features.c
	$(COMPILE) $<
	$(POSTCOMPILE)

i386.o: i386-builtin-types.inc

i386-builtin-types.inc: s-i386-bt ; @true
s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \
  $(srcdir)/config/i386/i386-builtin-types.def
	$(AWK) -f $^ > tmp-bt.inc
	$(SHELL) $(srcdir)/../move-if-change tmp-bt.inc i386-builtin-types.inc
	$(STAMP) $@
