1 # Top level -*- makefile -*- fragment for LTO
2 # Copyright (C) 2009, 2010
3 # Free Software Foundation, Inc.
5 #This file is part of GCC.
7 #GCC is free software; you can redistribute it and/or modify
8 #it under the terms of the GNU General Public License as published by
9 #the Free Software Foundation; either version 3, or (at your option)
12 #GCC is distributed in the hope that it will be useful,
13 #but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 #GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with GCC; see the file COPYING3. If not see
19 # <http://www.gnu.org/licenses/>.
23 # The name of the LTO compiler.
24 LTO_EXE = lto1$(exeext)
25 # The LTO-specific object files inclued in $(LTO_EXE).
26 LTO_OBJS = lto/lto-lang.o lto/lto.o lto/$(LTO_BINARY_READER).o attribs.o
27 LTO_H = lto/lto.h $(HASHTAB_H)
28 LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h
29 LTO_TREE_H = lto/lto-tree.h $(LINKER_PLUGIN_API_H)
34 # These hooks are used by the main GCC Makefile. Consult that
35 # Makefile for documentation.
36 lto.all.cross: $(LTO_EXE)
37 lto.start.encap: $(LTO_EXE)
57 rm -f $(LTO_OBJS) $(LTO_EXE)
71 # Use strict warnings for this front end.
72 lto-warn = $(STRICT_WARN)
74 $(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS)
75 $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
76 $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) $(LTO_USE_LIBELF)
79 lto/lto-lang.o: lto/lto-lang.c $(CONFIG_H) coretypes.h debug.h \
80 flags.h $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(SYSTEM_H) \
81 $(TARGET_H) $(LTO_H) $(GIMPLE_H) gtype-lto.h gt-lto-lto-lang.h \
83 lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coretypes.h opts.h \
84 toplev.h $(TREE_H) $(DIAGNOSTIC_CORE_H) $(TM_H) $(LIBIBERTY_H) \
85 $(CGRAPH_H) $(GGC_H) tree-ssa-operands.h $(TREE_PASS_H) \
86 langhooks.h $(VEC_H) $(BITMAP_H) pointer-set.h $(IPA_PROP_H) \
87 $(COMMON_H) debug.h $(TIMEVAR_H) $(GIMPLE_H) $(LTO_H) $(LTO_TREE_H) \
88 $(LTO_TAGS_H) $(LTO_STREAMER_H) $(SPLAY_TREE_H) gt-lto-lto.h
89 lto/lto-elf.o: lto/lto-elf.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \
90 toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H)
91 lto/lto-coff.o: lto/lto-coff.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \
92 toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) \
94 lto/lto-macho.o: lto/lto-macho.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \
95 toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) \
96 lto/lto-macho.h lto/lto-endian.h