Fix RELOC_FOR_GLOBAL_SYMBOLS macro so that it can cope with user defined symbols...
[binutils-gdb.git] / sim / Makefile.am
blobdb4cd4e4f92f77fc39bd006708b2503622b1cee5
1 ## Process this file with automake to generate Makefile.in
2 ##
3 #   Copyright (C) 1993-2024 Free Software Foundation, Inc.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 AUTOMAKE_OPTIONS = dejagnu foreign no-dist subdir-objects
19 ACLOCAL_AMFLAGS = -Im4 -I.. -I../config
21 GNULIB_PARENT_DIR = ..
22 @am__include@ @am__quote@$(GNULIB_PARENT_DIR)/gnulib/Makefile.gnulib.inc@am__quote@
24 srccom = $(srcdir)/common
25 srcroot = $(srcdir)/..
27 SIM_PRIMARY_TARGET = @SIM_PRIMARY_TARGET@
29 ## We don't set some of these vars here, but we need to define them so they may
30 ## be used consistently in local.mk files we include below.
31 pkginclude_HEADERS =
32 check_PROGRAMS =
33 noinst_PROGRAMS =
34 EXTRA_LIBRARIES =
35 noinst_LIBRARIES =
36 EXTRA_PROGRAMS =
37 BUILT_SOURCES =
39 CLEANFILES =
40 DISTCLEANFILES =
41 MOSTLYCLEANFILES = core
42 ## We build some objects ourselves directly that Automake doesn't track, so
43 ## make sure all objects in subdirs get cleaned up.
44 MOSTLYCLEANFILES += $(SIM_ENABLED_ARCHES:%=%/*.o)
46 CONFIG_STATUS_DEPENDENCIES = $(srcroot)/bfd/development.sh
48 AM_CFLAGS = \
49         $(WERROR_CFLAGS) \
50         $(WARN_CFLAGS) \
51         $(AM_CFLAGS_$(subst -,_,$(@D))) \
52         $(AM_CFLAGS_$(subst -,_,$(@D)_$(@F)))
53 AM_CPPFLAGS = \
54         $(INCGNU) \
55         -I$(srcroot) \
56         -I$(srcroot)/include \
57         -I../bfd \
58         -I.. \
59         -I$(@D) \
60         -I$(srcdir)/$(@D) \
61         $(SIM_HW_CFLAGS) \
62         $(SIM_INLINE) \
63         $(AM_CPPFLAGS_$(subst -,_,$(@D))) \
64         $(AM_CPPFLAGS_$(subst -,_,$(@D)_$(@F)))
66 AM_CPPFLAGS_FOR_BUILD = \
67         -I$(srcroot)/include \
68         $(SIM_HW_CFLAGS) \
69         $(SIM_INLINE)
70 COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(BUILD_WERROR_CFLAGS) $(BUILD_WARN_CFLAGS)
71 LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
73 ## Deps to add to the install-data-local target.
74 SIM_INSTALL_DATA_LOCAL_DEPS =
75 ## Deps to add to the install-exec-local target.
76 SIM_INSTALL_EXEC_LOCAL_DEPS =
77 ## Deps to add to the uninstall-local target.
78 SIM_UNINSTALL_LOCAL_DEPS =
80 # Generate target constants for newlib/libgloss from its source tree.
81 # This file is shipped with distributions so we build in the source dir.
82 # Use `make nltvals' to rebuild.
83 .PHONY: nltvals
84 nltvals:
85         $(srccom)/gennltvals.py --cpp "$(CPP)"
87 if ENABLE_SIM
88 pkginclude_HEADERS += \
89         $(srcroot)/include/sim/callback.h \
90         $(srcroot)/include/sim/sim.h
91 endif
93 ## Used for our custom rules to calculate the dependency output base name.
94 ## This form aligns with Automake's default rules.
95 SIM_DEPBASE = $(@D)/$(DEPDIR)/$(@F:.o=)
96 ## Actual full compile command like Automake's default rules.
97 SIM_COMPILE = \
98         $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(SIM_DEPBASE).Tpo -c -o $@ $< && \
99         $(am__mv) $(SIM_DEPBASE).Tpo $(SIM_DEPBASE).Po
101 include common/local.mk
102 include igen/local.mk
103 include testsuite/local.mk
105 ## Arch includes must come after common/local.mk.
106 if SIM_ENABLE_ARCH_aarch64
107 include aarch64/local.mk
108 endif
109 if SIM_ENABLE_ARCH_arm
110 include arm/local.mk
111 endif
112 if SIM_ENABLE_ARCH_avr
113 include avr/local.mk
114 endif
115 if SIM_ENABLE_ARCH_bfin
116 include bfin/local.mk
117 endif
118 if SIM_ENABLE_ARCH_bpf
119 include bpf/local.mk
120 endif
121 if SIM_ENABLE_ARCH_cr16
122 include cr16/local.mk
123 endif
124 if SIM_ENABLE_ARCH_cris
125 include cris/local.mk
126 endif
127 if SIM_ENABLE_ARCH_d10v
128 include d10v/local.mk
129 endif
130 if SIM_ENABLE_ARCH_erc32
131 include erc32/local.mk
132 endif
133 if SIM_ENABLE_ARCH_examples
134 include example-synacor/local.mk
135 endif
136 if SIM_ENABLE_ARCH_frv
137 include frv/local.mk
138 endif
139 if SIM_ENABLE_ARCH_ft32
140 include ft32/local.mk
141 endif
142 if SIM_ENABLE_ARCH_h8300
143 include h8300/local.mk
144 endif
145 if SIM_ENABLE_ARCH_iq2000
146 include iq2000/local.mk
147 endif
148 if SIM_ENABLE_ARCH_lm32
149 include lm32/local.mk
150 endif
151 if SIM_ENABLE_ARCH_m32c
152 include m32c/local.mk
153 endif
154 if SIM_ENABLE_ARCH_m32r
155 include m32r/local.mk
156 endif
157 if SIM_ENABLE_ARCH_m68hc11
158 include m68hc11/local.mk
159 endif
160 if SIM_ENABLE_ARCH_mcore
161 include mcore/local.mk
162 endif
163 if SIM_ENABLE_ARCH_microblaze
164 include microblaze/local.mk
165 endif
166 if SIM_ENABLE_ARCH_mips
167 include mips/local.mk
168 endif
169 if SIM_ENABLE_ARCH_mn10300
170 include mn10300/local.mk
171 endif
172 if SIM_ENABLE_ARCH_moxie
173 include moxie/local.mk
174 endif
175 if SIM_ENABLE_ARCH_msp430
176 include msp430/local.mk
177 endif
178 if SIM_ENABLE_ARCH_or1k
179 include or1k/local.mk
180 endif
181 if SIM_ENABLE_ARCH_ppc
182 include ppc/local.mk
183 endif
184 if SIM_ENABLE_ARCH_pru
185 include pru/local.mk
186 endif
187 if SIM_ENABLE_ARCH_riscv
188 include riscv/local.mk
189 endif
190 if SIM_ENABLE_ARCH_rl78
191 include rl78/local.mk
192 endif
193 if SIM_ENABLE_ARCH_rx
194 include rx/local.mk
195 endif
196 if SIM_ENABLE_ARCH_sh
197 include sh/local.mk
198 endif
199 if SIM_ENABLE_ARCH_v850
200 include v850/local.mk
201 endif
203 install-data-local: installdirs $(SIM_INSTALL_DATA_LOCAL_DEPS)
204         $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(libdir)
205         lib=`echo sim | sed '$(program_transform_name)'`; \
206         for d in $(SIM_ENABLED_ARCHES); do \
207                 n="$$lib"; \
208                 [ "$(SIM_PRIMARY_TARGET)" = "$$d" ] || n="$$n-$$d"; \
209                 n="lib$$n.a"; \
210                 $(INSTALL_DATA) $$d/libsim.a $(DESTDIR)$(libdir)/$$n || exit 1; \
211         done
213 install-exec-local: installdirs $(SIM_INSTALL_EXEC_LOCAL_DEPS)
214         $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
215         run=`echo run | sed '$(program_transform_name)'`; \
216         for d in $(SIM_ENABLED_ARCHES); do \
217                 n="$$run"; \
218                 [ "$(SIM_PRIMARY_TARGET)" = "$$d" ] || n="$$n-$$d"; \
219                 $(LIBTOOL) --mode=install \
220                         $(INSTALL_PROGRAM) $$d/run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) || exit 1; \
221         done
223 uninstall-local: $(SIM_UNINSTALL_LOCAL_DEPS)
224         rm -f $(DESTDIR)$(bindir)/run $(DESTDIR)$(libdir)/libsim.a
225         for d in $(SIM_ENABLED_ARCHES); do \
226                 rm -f $(DESTDIR)$(bindir)/run-$$d $(DESTDIR)$(libdir)/libsim-$$d.a; \
227         done