xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/lto/Make-lang.in (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1# Top level -*- makefile -*- fragment for LTO
2#   Copyright (C) 2009-2020 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)
24LTO_DUMP_EXE = lto-dump$(exeext)
25LTO_DUMP_INSTALL_NAME := $(shell echo lto-dump|sed '$(program_transform_name)')
26# The LTO-specific object files inclued in $(LTO_EXE).
27LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-common.o
28lto_OBJS = $(LTO_OBJS)
29LTO_DUMP_OBJS = lto/lto-lang.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-dump.o lto/lto-common.o
30lto_dump_OBJS = $(LTO_DUMP_OBJS)
31
32# this is only useful in a LTO bootstrap, but this does not work right
33# now. Should reenable after this is fixed, but only when LTO bootstrap
34# is enabled.
35
36#ifeq ($(if $(wildcard ../stage_current),$(shell cat \
37#  ../stage_current)),stageautofeedback)
38#$(LTO_OBJS): CFLAGS += -fauto-profile=lto1.fda
39#$(LTO_OBJS): lto1.fda
40#endif
41
42# Rules
43
44# These hooks are used by the main GCC Makefile.  Consult that
45# Makefile for documentation.
46lto.all.cross: $(LTO_EXE) $(LTO_DUMP_EXE)
47lto.start.encap: $(LTO_EXE) $(LTO_DUMP_EXE)
48lto.rest.encap:
49lto.tags:
50lto.install-common: installdirs
51	$(INSTALL_PROGRAM) $(LTO_DUMP_EXE) \
52	$(DESTDIR)$(bindir)/$(LTO_DUMP_INSTALL_NAME)$(exeext)
53
54lto.install-man:
55lto.install-info:
56lto.dvi:
57lto.pdf:
58lto.install-pdf:
59lto.html:
60lto.install-html:
61lto.uninstall:
62lto.info:
63lto.man:
64lto.srcextra:
65lto.srcman:
66lto.srcinfo:
67lto.install-plugin:
68
69lto.mostlyclean:
70	rm -f $(LTO_OBJS) $(LTO_EXE) lto1.fda $(LTO_DUMP_OBJS) $(LTO_DUMP_EXE) lto-dump.fda
71
72lto.clean:
73lto.distclean:
74lto.maintainer-clean:
75lto.stage1:
76lto.stage2:
77lto.stage3:
78lto.stage4:
79lto.stageprofile:
80lto.stagefeedback:
81
82# LTO rules.
83
84# Use strict warnings for this front end.
85lto-warn = $(STRICT_WARN)
86
87$(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS)
88	+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
89		$(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS)
90
91$(LTO_DUMP_EXE): $(LTO_DUMP_OBJS) $(BACKEND) $(LIBDEPS)
92	+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
93		$(LTO_DUMP_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS)
94
95lto/lto-dump.o: $(LTO_OBJS)
96
97lto1.fda: ../prev-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
98	$(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov lto1.fda -profile ../prev-gcc/$(PERF_DATA) -gcov_version 1
99
100# LTO testing is done as part of C/C++/Fortran etc. testing.
101check-lto:
102
103# No LTO-specific selftests
104selftest-lto:
105