1# Top level -*- makefile -*- fragment for LTO 2# Copyright (C) 2009, 2010 3# Free Software Foundation, Inc. 4 5#This file is part of GCC. 6 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) 10#any later version. 11 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. 16 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/>. 20 21# Variables 22 23# The name of the LTO compiler. 24LTO_EXE = lto1$(exeext) 25# The LTO-specific object files inclued in $(LTO_EXE). 26LTO_OBJS = lto/lto-lang.o lto/lto.o lto/$(LTO_BINARY_READER).o attribs.o 27LTO_H = lto/lto.h $(HASHTAB_H) 28LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h 29LTO_TREE_H = lto/lto-tree.h $(LINKER_PLUGIN_API_H) 30 31 32# Rules 33 34# These hooks are used by the main GCC Makefile. Consult that 35# Makefile for documentation. 36lto.all.cross: $(LTO_EXE) 37lto.start.encap: $(LTO_EXE) 38lto.rest.encap: 39lto.tags: 40lto.install-common: 41lto.install-man: 42lto.install-info: 43lto.dvi: 44lto.pdf: 45lto.install-pdf: 46lto.html: 47lto.install-html: 48lto.uninstall: 49lto.info: 50lto.man: 51lto.srcextra: 52lto.srcman: 53lto.srcinfo: 54lto.install-plugin: 55 56lto.mostlyclean: 57 rm -f $(LTO_OBJS) $(LTO_EXE) 58 59lto.clean: 60lto.distclean: 61lto.maintainer-clean: 62lto.stage1: 63lto.stage2: 64lto.stage3: 65lto.stage4: 66lto.stageprofile: 67lto.stagefeedback: 68 69# LTO rules. 70 71# Use strict warnings for this front end. 72lto-warn = $(STRICT_WARN) 73 74$(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) 75 $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ 76 $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) $(LTO_USE_LIBELF) 77 78# Dependencies 79lto/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 \ 82 $(EXPR_H) 83lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coretypes.h opts.h \ 84 toplev.h $(TREE_H) $(DIAGNOSTIC_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) $(TIMEVAR_H) $(GIMPLE_H) $(LTO_H) $(LTO_TREE_H) \ 88 $(LTO_TAGS_H) $(LTO_STREAMER_H) 89lto/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) 91lto/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) \ 93 lto/lto-coff.h 94lto/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 97