aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/nvptx/t-nvptx
blob: 9c5cbda0070749fe47b79d245aca664e37f94fc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
nvptx-c.o: $(srcdir)/config/nvptx/nvptx-c.cc
	$(COMPILE) $<
	$(POSTCOMPILE)

CFLAGS-mkoffload.o += $(DRIVER_DEFINES) \
	-DGCC_INSTALL_NAME=\"$(GCC_INSTALL_NAME)\"
mkoffload.o: $(srcdir)/config/nvptx/mkoffload.cc
	$(COMPILE) $<
	$(POSTCOMPILE)
ALL_HOST_OBJS += mkoffload.o

mkoffload$(exeext): mkoffload.o collect-utils.o libcommon-target.a $(LIBIBERTY) $(LIBDEPS)
	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
	  mkoffload.o collect-utils.o libcommon-target.a $(LIBIBERTY) $(LIBS)

$(srcdir)/config/nvptx/nvptx.h: $(srcdir)/config/nvptx/nvptx-gen.h
$(srcdir)/config/nvptx/nvptx-gen.h: s-nvptx-gen-h; @true
s-nvptx-gen-h: $(srcdir)/config/nvptx/nvptx-sm.def
	$(SHELL) $(srcdir)/config/nvptx/gen-h.sh "$(srcdir)/config/nvptx" \
	  > tmp-nvptx-gen.h
	$(SHELL) $(srcdir)/../move-if-change \
	  tmp-nvptx-gen.h $(srcdir)/config/nvptx/nvptx-gen.h
	$(STAMP) s-nvptx-gen-h

$(srcdir)/config/nvptx/nvptx-gen.opt: s-nvptx-gen-opt; @true
s-nvptx-gen-opt: $(srcdir)/config/nvptx/nvptx-sm.def \
  $(srcdir)/config/nvptx/gen-opt.sh
	$(SHELL) $(srcdir)/config/nvptx/gen-opt.sh "$(srcdir)/config/nvptx" \
	  > tmp-nvptx-gen.opt
	$(SHELL) $(srcdir)/../move-if-change \
	  tmp-nvptx-gen.opt $(srcdir)/config/nvptx/nvptx-gen.opt
	$(STAMP) s-nvptx-gen-opt


# Multilib setup.

MULTILIB_OPTIONS =
MULTILIB_MATCHES =
MULTILIB_EXCEPTIONS =

MULTILIB_OPTIONS += mgomp

multilib_options_isa_list := $(TM_MULTILIB_CONFIG)
multilib_options_isa_default := $(word 1,$(multilib_options_isa_list))
multilib_options_misa_list := $(addprefix misa=,$(multilib_options_isa_list))
# Add the requested '-misa' variants as a multilib option ('misa=VAR1/misa=VAR2/misa=VAR3' etc.):
empty :=
space := $(empty) $(empty)
MULTILIB_OPTIONS += $(subst $(space),/,$(multilib_options_misa_list))
# ..., and remap '-misa' variants as appropriate:
multilib_matches := $(shell $(srcdir)/config/nvptx/gen-multilib-matches.sh $(srcdir)/config/nvptx $(multilib_options_isa_default) "$(multilib_options_isa_list)")
MULTILIB_MATCHES += $(multilib_matches)
# ..., and don't actually build what's the default '-misa':
MULTILIB_EXCEPTIONS += *misa=$(multilib_options_isa_default)*

MULTILIB_OPTIONS += mptx=3.1
# Filter out invalid '-misa'/'-mptx=3.1' combinations; per 'nvptx-sm.def',
# 'nvptx.opt:ptx_version', 'nvptx.cc:first_ptx_version_supporting_sm'
# (that is, '-mptx=3.1' only for sm_30, sm_35 variants):
MULTILIB_EXCEPTIONS += $(foreach misa,$(filter-out %=sm_30 %=sm_35,$(multilib_options_misa_list)),*$(misa)/mptx=3.1)
# ..., and special care has to be taken if '-mptx=3.1' is invalid for the
# default variant:
MULTILIB_EXCEPTIONS += $(if $(filter-out sm_30 sm_35,$(multilib_options_isa_default)),mgomp/mptx=3.1 mptx=3.1)