1# Top level -*- makefile -*- fragment for LTO 2# Copyright (C) 2009-2013 Free Software Foundation, Inc. 3 4#This file is part of GCC. 5 6#GCC is free software; you can redistribute it and/or modify 7#it under the terms of the GNU General Public License as published by 8#the Free Software Foundation; either version 3, or (at your option) 9#any later version. 10 11#GCC is distributed in the hope that it will be useful, 12#but WITHOUT ANY WARRANTY; without even the implied warranty of 13#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14#GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with GCC; see the file COPYING3. If not see 18# <http://www.gnu.org/licenses/>. 19 20# Variables 21 22# The name of the LTO compiler. 23LTO_EXE = lto1$(exeext) 24# The LTO-specific object files inclued in $(LTO_EXE). 25LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o 26LTO_H = lto/lto.h $(HASHTAB_H) 27LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h 28LTO_TREE_H = lto/lto-tree.h $(LINKER_PLUGIN_API_H) 29 30 31# Rules 32 33# These hooks are used by the main GCC Makefile. Consult that 34# Makefile for documentation. 35lto.all.cross: $(LTO_EXE) 36lto.start.encap: $(LTO_EXE) 37lto.rest.encap: 38lto.tags: 39lto.install-common: 40lto.install-man: 41lto.install-info: 42lto.dvi: 43lto.pdf: 44lto.install-pdf: 45lto.html: 46lto.install-html: 47lto.uninstall: 48lto.info: 49lto.man: 50lto.srcextra: 51lto.srcman: 52lto.srcinfo: 53lto.install-plugin: 54 55lto.mostlyclean: 56 rm -f $(LTO_OBJS) $(LTO_EXE) 57 58lto.clean: 59lto.distclean: 60lto.maintainer-clean: 61lto.stage1: 62lto.stage2: 63lto.stage3: 64lto.stage4: 65lto.stageprofile: 66lto.stagefeedback: 67 68# LTO rules. 69 70# Use strict warnings for this front end. 71lto-warn = $(STRICT_WARN) 72 73$(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) 74 +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ 75 $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) 76 77# Dependencies 78lto/lto-lang.o: lto/lto-lang.c $(CONFIG_H) coretypes.h debug.h \ 79 flags.h $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(SYSTEM_H) \ 80 $(TARGET_H) $(LTO_H) $(GIMPLE_H) gtype-lto.h gt-lto-lto-lang.h \ 81 $(EXPR_H) $(LTO_STREAMER_H) 82lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(OPTS_H) \ 83 toplev.h $(TREE_H) $(TREE_FLOW_H) $(DIAGNOSTIC_CORE_H) $(TM_H) \ 84 $(CGRAPH_H) $(GGC_H) tree-ssa-operands.h $(TREE_PASS_H) \ 85 langhooks.h $(VEC_H) $(BITMAP_H) pointer-set.h $(IPA_PROP_H) \ 86 $(COMMON_H) debug.h $(GIMPLE_H) $(LTO_H) $(LTO_TREE_H) \ 87 $(LTO_TAGS_H) $(LTO_STREAMER_H) $(SPLAY_TREE_H) gt-lto-lto.h \ 88 $(TREE_STREAMER_H) lto/lto-partition.h 89lto/lto-partition.o: lto/lto-partition.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ 90 toplev.h $(TREE_H) $(TM_H) \ 91 $(CGRAPH_H) $(TIMEVAR_H) \ 92 $(LTO_STREAMER_H) $(SPLAY_TREE_H) gt-lto-lto.h $(PARAMS_H) \ 93 ipa-inline.h $(IPA_UTILS_H) lto/lto-partition.h 94lto/lto-object.o: lto/lto-object.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ 95 $(DIAGNOSTIC_CORE_H) $(LTO_H) $(TM_H) $(LTO_STREAMER_H) \ 96 ../include/simple-object.h 97 98# LTO testing is done as part of C/C++/Fortran etc. testing. 99check-lto: 100