]>
Commit | Line | Data |
---|---|---|
35485da9 | 1 | # Top level -*- makefile -*- fragment for libgccjit.so. |
83ffe9cd | 2 | # Copyright (C) 2013-2023 Free Software Foundation, Inc. |
35485da9 DM |
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 | # This file provides the language dependent support in the main Makefile. | |
21 | # Each language makefile fragment must provide the following targets: | |
22 | # | |
23 | # foo.all.cross, foo.start.encap, foo.rest.encap, | |
24 | # foo.install-common, foo.install-man, foo.install-info, foo.install-pdf, | |
25 | # foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall, | |
26 | # foo.mostlyclean, foo.clean, foo.distclean, | |
27 | # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 | |
28 | # | |
29 | # where `foo' is the name of the language. | |
30 | # | |
31 | # It should also provide rules for: | |
32 | # | |
33 | # - making any compiler driver (eg: g++) | |
34 | # - the compiler proper (eg: cc1plus) | |
35 | # - define the names for selecting the language in LANGUAGES. | |
36 | ||
37 | #\f | |
38 | # Define the names for selecting jit in LANGUAGES. | |
39 | # Note that it would be nice to move the dependency on g++ | |
40 | # into the jit rule, but that needs a little bit of work | |
41 | # to do the right thing within all.cross. | |
42 | ||
f8d6596c NB |
43 | LIBGCCJIT_VERSION_NUM = 0 |
44 | LIBGCCJIT_MINOR_NUM = 0 | |
45 | LIBGCCJIT_RELEASE_NUM = 1 | |
46 | ||
c83027f3 | 47 | ifneq (,$(findstring mingw,$(target))) |
f8d6596c NB |
48 | LIBGCCJIT_FILENAME = libgccjit-$(LIBGCCJIT_VERSION_NUM).dll |
49 | LIBGCCJIT_IMPORT_LIB = libgccjit.dll.a | |
c83027f3 NB |
50 | |
51 | jit: $(LIBGCCJIT_FILENAME) \ | |
52 | $(FULL_DRIVER_NAME) | |
53 | ||
54 | else | |
55 | ||
08defd9c IS |
56 | ifneq (,$(findstring darwin,$(host))) |
57 | ||
58 | LIBGCCJIT_AGE = 1 | |
59 | LIBGCCJIT_BASENAME = libgccjit | |
60 | ||
61 | LIBGCCJIT_SONAME = \ | |
62 | ${libdir}/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib | |
63 | LIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib | |
64 | LIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib | |
65 | ||
66 | # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and | |
67 | # LD_SONAME_OPTION depending if configure found them, using $(if) | |
68 | # We have to define a COMMA here, otherwise the commas in the "true" | |
69 | # result are treated as separators by the $(if). | |
70 | COMMA := , | |
71 | LIBGCCJIT_VERSION_SCRIPT_OPTION = \ | |
72 | $(if $(LD_VERSION_SCRIPT_OPTION),\ | |
73 | -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) | |
74 | ||
75 | LIBGCCJIT_SONAME_OPTION = \ | |
76 | $(if $(LD_SONAME_OPTION), \ | |
77 | -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) | |
78 | ||
79 | LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME) | |
80 | LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) | |
81 | ||
82 | jit: $(LIBGCCJIT_FILENAME) \ | |
83 | $(LIBGCCJIT_SYMLINK) \ | |
84 | $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ | |
85 | $(FULL_DRIVER_NAME) | |
c83027f3 | 86 | |
08defd9c IS |
87 | else |
88 | ||
89 | LIBGCCJIT_LINKER_NAME = libgccjit.so | |
35485da9 DM |
90 | LIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM) |
91 | LIBGCCJIT_FILENAME = \ | |
92 | $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM) | |
93 | ||
94 | LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) | |
95 | LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME) | |
96 | ||
deb3da39 DM |
97 | # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and |
98 | # LD_SONAME_OPTION depending if configure found them, using $(if) | |
99 | # We have to define a COMMA here, otherwise the commas in the "true" | |
100 | # result are treated as separators by the $(if). | |
101 | COMMA := , | |
102 | LIBGCCJIT_VERSION_SCRIPT_OPTION = \ | |
103 | $(if $(LD_VERSION_SCRIPT_OPTION),\ | |
104 | -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) | |
105 | ||
106 | LIBGCCJIT_SONAME_OPTION = \ | |
107 | $(if $(LD_SONAME_OPTION), \ | |
108 | -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) | |
109 | ||
35485da9 DM |
110 | jit: $(LIBGCCJIT_FILENAME) \ |
111 | $(LIBGCCJIT_SYMLINK) \ | |
112 | $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ | |
113 | $(FULL_DRIVER_NAME) | |
08defd9c IS |
114 | |
115 | endif | |
c83027f3 | 116 | endif |
35485da9 | 117 | |
a774a6a2 | 118 | jit.serial = $(LIBGCCJIT_FILENAME) |
d326ebc9 | 119 | |
35485da9 | 120 | # Tell GNU make to ignore these if they exist. |
a774a6a2 | 121 | .PHONY: jit |
35485da9 DM |
122 | |
123 | jit_OBJS = attribs.o \ | |
124 | jit/dummy-frontend.o \ | |
125 | jit/libgccjit.o \ | |
eb4c16eb | 126 | jit/jit-logging.o \ |
35485da9 DM |
127 | jit/jit-recording.o \ |
128 | jit/jit-playback.o \ | |
56dea35f | 129 | jit/jit-result.o \ |
d1e5f2c7 | 130 | jit/jit-tempdir.o \ |
2cb844ce DM |
131 | jit/jit-builtins.o \ |
132 | jit/jit-spec.o \ | |
133 | gcc.o | |
35485da9 | 134 | |
c83027f3 NB |
135 | ifneq (,$(findstring mingw,$(target))) |
136 | jit_OBJS += jit/jit-w32.o | |
137 | endif | |
138 | ||
35485da9 DM |
139 | # Use strict warnings for this front end. |
140 | jit-warn = $(STRICT_WARN) | |
141 | ||
c83027f3 | 142 | ifneq (,$(findstring mingw,$(target))) |
f8d6596c NB |
143 | # Create import library |
144 | LIBGCCJIT_EXTRA_OPTS = -Wl,--out-implib,$(LIBGCCJIT_IMPORT_LIB) | |
c83027f3 | 145 | else |
08defd9c IS |
146 | |
147 | ifneq (,$(findstring darwin,$(host))) | |
148 | # TODO : Construct a Darwin-style symbol export file. | |
149 | LIBGCCJIT_EXTRA_OPTS = -Wl,-compatibility_version,$(LIBGCCJIT_VERSION_NUM) \ | |
150 | -Wl,-current_version,$(LIBGCCJIT_VERSION_NUM).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_AGE) \ | |
151 | $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ | |
152 | $(LIBGCCJIT_SONAME_OPTION) | |
153 | else | |
154 | ||
c83027f3 NB |
155 | LIBGCCJIT_EXTRA_OPTS = $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ |
156 | $(LIBGCCJIT_SONAME_OPTION) | |
157 | endif | |
08defd9c | 158 | endif |
c83027f3 | 159 | |
75df1594 YY |
160 | # Only link objects from $(EXTRA_GCC_OBJS) that's not already |
161 | # included in libbackend.a ($(EXTRA_OBJS)). | |
162 | EXTRA_GCC_OBJS_EXCLUSIVE = $(foreach _obj1, $(EXTRA_GCC_OBJS), \ | |
163 | $(if $(filter $(_obj1), $(EXTRA_OBJS)),, $(_obj1))) | |
164 | ||
35485da9 DM |
165 | # We avoid using $(BACKEND) from Makefile.in in order to avoid pulling |
166 | # in main.o | |
167 | $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ | |
168 | libbackend.a libcommon-target.a libcommon.a \ | |
169 | $(CPPLIB) $(LIBDECNUMBER) \ | |
2cb844ce | 170 | $(LIBDEPS) $(srcdir)/jit/libgccjit.map \ |
75df1594 | 171 | $(EXTRA_GCC_OBJS_EXCLUSIVE) $(jit.prev) |
d326ebc9 | 172 | @$(call LINK_PROGRESS,$(INDEX.jit),start) |
35485da9 DM |
173 | +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ -shared \ |
174 | $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ | |
ea143da7 | 175 | $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ |
75df1594 | 176 | $(EXTRA_GCC_OBJS_EXCLUSIVE) \ |
c83027f3 | 177 | $(LIBGCCJIT_EXTRA_OPTS) |
d326ebc9 | 178 | @$(call LINK_PROGRESS,$(INDEX.jit),end) |
35485da9 | 179 | |
c83027f3 NB |
180 | # Create symlinks when not building for Windows |
181 | ifeq (,$(findstring mingw,$(target))) | |
08defd9c IS |
182 | |
183 | ifeq (,$(findstring darwin,$(host))) | |
184 | # but only one level for Darwin, version info is embedded. | |
35485da9 DM |
185 | $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) |
186 | ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) | |
08defd9c | 187 | endif |
35485da9 DM |
188 | |
189 | $(LIBGCCJIT_LINKER_NAME_SYMLINK): $(LIBGCCJIT_SONAME_SYMLINK) | |
190 | ln -sf $(LIBGCCJIT_SONAME_SYMLINK) $(LIBGCCJIT_LINKER_NAME_SYMLINK) | |
c83027f3 | 191 | endif |
35485da9 DM |
192 | |
193 | #\f | |
194 | # Build hooks: | |
195 | ||
196 | jit.all.cross: | |
197 | jit.start.encap: | |
198 | jit.rest.encap: | |
199 | ||
200 | # Documentation build hooks. | |
201 | # | |
202 | # The documentation can be built using the texinfo toolchain, or | |
203 | # the sphinx toolchain | |
204 | # | |
205 | # The jit documentation is authored using Sphinx, which has numerous | |
206 | # advantages over Texinfo, including: | |
207 | # | |
208 | # * much faster | |
209 | # | |
210 | # * use of CSS and JS to provide less of a 1990s feel in the generated | |
211 | # HTML. | |
212 | # | |
213 | # * sane, stable HTML page and anchor names | |
214 | # | |
215 | # * sane HTML navigation: ability to move forward and back in the HTML | |
216 | # at every node to read the HTML like a book | |
217 | # | |
218 | # * syntax-coloring of examples | |
219 | # | |
220 | # * the ability to "include" fragments of code inline. This is used | |
221 | # heavily by the jit docs, so that the example code is shared by both | |
222 | # the test suite and the documentation to ensure that the examples | |
223 | # appearing in the docs actually compile and work | |
224 | # | |
225 | # Sphinx is not a "blessed" dependency, and so a prebuilt libgccjit.texinfo | |
226 | # file built by Sphinx is checked into the source tree to avoid requiring | |
227 | # everyone to have Sphinx installed. | |
228 | # | |
229 | # This prebuilt libgccjit.texinfo has the "include" fragments "baked in", | |
230 | # and so contains the content from the sphinx toolchain, but lacks the | |
231 | # syntax-coloring, and the generated HTML is (IMHO) greatly inferior to | |
232 | # that generated by Sphinx. | |
233 | ||
234 | # These targets redirect HTML creation and installation to either | |
235 | # jit.sphinx.(install-)html or jit.texinfo.(install-)html. | |
40a39381 | 236 | jit.html: jit.$(doc_build_sys).html |
35485da9 DM |
237 | jit.install-html: jit.$(doc_build_sys).install-html |
238 | ||
239 | # For now, use texinfo for pdf, since the sphinx latex toolchain currently | |
240 | # fails for me deep inside pdflatex (see notes below) | |
40a39381 | 241 | jit.pdf: jit.texinfo.pdf |
35485da9 DM |
242 | jit.install-pdf: jit.texinfo.install-pdf |
243 | ||
40a39381 ML |
244 | # Hooks for building docs using texinfo |
245 | JIT_TEXI_FILES = $(srcdir)/jit/docs/_build/texinfo/libgccjit.texi | |
35485da9 | 246 | |
40a39381 ML |
247 | jit.info: doc/libgccjit.info |
248 | doc/libgccjit.info: $(JIT_TEXI_FILES) | |
249 | if test "x$(BUILD_INFO)" = xinfo; then \ | |
250 | rm -f doc/libgccjit.info*; \ | |
251 | $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ | |
252 | -I $(gcc_docdir)/include -o $@ $<; \ | |
35485da9 DM |
253 | else true; fi |
254 | ||
255 | jit.install-info: $(DESTDIR)$(infodir)/libgccjit.info | |
256 | ||
40a39381 ML |
257 | jit.dvi: doc/libgccjit.dvi |
258 | doc/libgccjit.dvi: $(JIT_TEXI_FILES) | |
259 | $(TEXI2DVI) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< | |
35485da9 | 260 | |
40a39381 | 261 | jit.texinfo.html: $(build_htmldir)/jit/index.html |
35485da9 | 262 | |
40a39381 ML |
263 | $(build_htmldir)/jit/index.html: $(srcdir)/jit/docs/_build/texinfo/libgccjit.texi |
264 | $(mkinstalldirs) $(@D) | |
265 | rm -f $(@D)/* | |
266 | $(TEXI2HTML) -I $(gcc_docdir)/include -I $(srcdir)/jit -o $(@D) $< | |
267 | ||
268 | jit.texinfo.install-html: jit.texinfo.html | |
35485da9 DM |
269 | @$(NORMAL_INSTALL) |
270 | test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)" | |
271 | @for p in $(build_htmldir)/jit; do \ | |
272 | if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \ | |
273 | f=$(html__strip_dir) \ | |
274 | if test -d "$$d$$p"; then \ | |
275 | echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \ | |
276 | $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ | |
277 | echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ | |
278 | $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \ | |
279 | else \ | |
280 | echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ | |
281 | $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ | |
282 | fi; \ | |
283 | done | |
284 | ||
40a39381 | 285 | jit.texinfo.pdf: doc/libgccjit.pdf |
35485da9 | 286 | |
40a39381 ML |
287 | doc/libgccjit.pdf: $(JIT_TEXI_FILES) |
288 | $(TEXI2PDF) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< | |
35485da9 DM |
289 | |
290 | jit.texinfo.install-pdf: doc/libgccjit.pdf | |
291 | @$(NORMAL_INSTALL) | |
292 | test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc" | |
293 | @for p in doc/libgccjit.pdf; do \ | |
294 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | |
295 | f=$(pdf__strip_dir) \ | |
296 | echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \ | |
297 | $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \ | |
298 | done | |
299 | ||
300 | # Hooks for building docs using the Sphinx toolchain: | |
301 | ||
302 | SPHINX_BUILD_DIR=jit/sphinx-build | |
303 | ||
304 | jit.sphinx.html: | |
70b738f9 | 305 | $(mkinstalldirs) $(SPHINX_BUILD_DIR) |
35485da9 | 306 | (cd $(srcdir)/jit/docs && \ |
b779e6bf | 307 | make html BUILDDIR=$(PWD)/$(SPHINX_BUILD_DIR) ) |
35485da9 DM |
308 | |
309 | jit_htmldir=$(htmldir)/jit | |
310 | ||
311 | jit.sphinx.install-html: jit.sphinx.html | |
312 | @$(NORMAL_INSTALL) | |
313 | test -z "$(jit_htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(jit_htmldir)" | |
314 | @for f in $(shell cd $(SPHINX_BUILD_DIR)/html && find) ; do \ | |
315 | if test -f $(SPHINX_BUILD_DIR)/html/"$$f"; then \ | |
316 | $(INSTALL_DATA) $(SPHINX_BUILD_DIR)/html/"$$f" $(DESTDIR)$(jit_htmldir)/"$$f"; \ | |
317 | else \ | |
318 | mkdir $(DESTDIR)$(jit_htmldir)/"$$f"; \ | |
319 | fi; \ | |
320 | done | |
321 | ||
322 | # (This one is currently failing deep inside pdflatex for me; | |
323 | # see https://bugzilla.redhat.com/show_bug.cgi?id=1148845 ) | |
324 | jit.sphinx.pdf: $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf | |
325 | $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf: | |
70b738f9 | 326 | $(mkinstalldirs) $(SPHINX_BUILD_DIR) |
35485da9 | 327 | (cd $(srcdir)/jit/docs && \ |
b779e6bf | 328 | make latexpdf BUILDDIR=$(PWD)/$(SPHINX_BUILD_DIR) ) |
35485da9 DM |
329 | |
330 | jit.sphinx.install-pdf: $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf | |
331 | @$(NORMAL_INSTALL) | |
332 | test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc" | |
333 | @for p in $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf; do \ | |
334 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | |
335 | f=$(pdf__strip_dir) \ | |
336 | echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \ | |
337 | $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \ | |
338 | done | |
339 | ||
340 | jit.srcinfo: | |
341 | jit.srcextra: | |
342 | ||
343 | jit.tags: | |
344 | ||
40a39381 | 345 | jit.man: |
35485da9 DM |
346 | |
347 | jit.srcman: | |
348 | ||
349 | lang_checks += check-jit | |
499de348 DM |
350 | lang_checks_parallelized += check-jit |
351 | # This number is somewhat arbitrary. Two tests are much slower | |
352 | # than all the others (test-combination.c and test-threads.c) so | |
353 | # we want them to be placed in different "buckets". | |
354 | check_jit_parallelize = 10 | |
35485da9 | 355 | |
033eb567 DM |
356 | # No jit-specific selftests |
357 | selftest-jit: | |
358 | ||
35485da9 DM |
359 | #\f |
360 | # Install hooks: | |
70b738f9 | 361 | jit.install-headers: installdirs |
c83027f3 NB |
362 | $(INSTALL_DATA) $(srcdir)/jit/libgccjit.h \ |
363 | $(DESTDIR)$(includedir)/libgccjit.h | |
364 | $(INSTALL_DATA) $(srcdir)/jit/libgccjit++.h \ | |
365 | $(DESTDIR)$(includedir)/libgccjit++.h | |
366 | ||
367 | ifneq (,$(findstring mingw,$(target))) | |
368 | jit.install-common: installdirs jit.install-headers | |
369 | # Install import library | |
f8d6596c NB |
370 | $(INSTALL_PROGRAM) $(LIBGCCJIT_IMPORT_LIB) \ |
371 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_IMPORT_LIB) | |
c83027f3 | 372 | # Install DLL file |
35485da9 | 373 | $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ |
c83027f3 | 374 | $(DESTDIR)$(bindir)/$(LIBGCCJIT_FILENAME) |
08defd9c IS |
375 | |
376 | else | |
377 | ifneq (,$(findstring darwin,$(host))) | |
378 | # but only one level for Darwin | |
379 | ||
380 | jit.install-common: installdirs jit.install-headers | |
381 | $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ | |
382 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_FILENAME) | |
383 | ln -sf \ | |
384 | $(LIBGCCJIT_SONAME_SYMLINK)\ | |
385 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) | |
386 | ||
c83027f3 NB |
387 | else |
388 | jit.install-common: installdirs jit.install-headers | |
389 | $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ | |
390 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_FILENAME) | |
35485da9 DM |
391 | ln -sf \ |
392 | $(LIBGCCJIT_FILENAME) \ | |
c83027f3 | 393 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_SONAME_SYMLINK) |
35485da9 DM |
394 | ln -sf \ |
395 | $(LIBGCCJIT_SONAME_SYMLINK)\ | |
c83027f3 NB |
396 | $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) |
397 | endif | |
08defd9c | 398 | endif |
35485da9 | 399 | |
40a39381 | 400 | jit.install-man: |
35485da9 DM |
401 | |
402 | jit.install-plugin: | |
403 | ||
404 | jit.uninstall: | |
405 | ||
406 | #\f | |
407 | # Clean hooks: | |
408 | # A lot of the ancillary files are deleted by the main makefile. | |
409 | # We just have to delete files specific to us. | |
410 | ||
411 | jit.mostlyclean: | |
46bf0b0a JW |
412 | -rm -f $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SYMLINK) |
413 | -rm -f $(LIBGCCJIT_LINKER_NAME_SYMLINK) $(FULL_DRIVER_NAME) | |
414 | -rm -f $(LIBGCCJIT_SONAME) | |
415 | -rm -f $(jit_OBJS) | |
35485da9 DM |
416 | |
417 | jit.clean: | |
418 | ||
419 | jit.distclean: | |
420 | ||
421 | jit.maintainer-clean: | |
422 | ||
423 | #\f | |
424 | # Stage hooks: | |
425 | # The main makefile has already created stage?/jit. | |
426 | ||
427 | jit.stage1: stage1-start | |
428 | -mv jit/*$(objext) stage1/jit | |
429 | jit.stage2: stage2-start | |
430 | -mv jit/*$(objext) stage2/jit | |
431 | jit.stage3: stage3-start | |
432 | -mv jit/*$(objext) stage3/jit | |
433 | jit.stage4: stage4-start | |
434 | -mv jit/*$(objext) stage4/jit | |
435 | jit.stageprofile: stageprofile-start | |
436 | -mv jit/*$(objext) stageprofile/jit | |
437 | jit.stagefeedback: stagefeedback-start | |
438 | -mv jit/*$(objext) stagefeedback/jit |