136ac495dSmrg# Top level -*- makefile -*- fragment for libgccjit.so. 2*8feb0f0bSmrg# Copyright (C) 2013-2020 Free Software Foundation, Inc. 336ac495dSmrg 436ac495dSmrg#This file is part of GCC. 536ac495dSmrg 636ac495dSmrg#GCC is free software; you can redistribute it and/or modify 736ac495dSmrg#it under the terms of the GNU General Public License as published by 836ac495dSmrg#the Free Software Foundation; either version 3, or (at your option) 936ac495dSmrg#any later version. 1036ac495dSmrg 1136ac495dSmrg#GCC is distributed in the hope that it will be useful, 1236ac495dSmrg#but WITHOUT ANY WARRANTY; without even the implied warranty of 1336ac495dSmrg#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1436ac495dSmrg#GNU General Public License for more details. 1536ac495dSmrg 1636ac495dSmrg# You should have received a copy of the GNU General Public License 1736ac495dSmrg# along with GCC; see the file COPYING3. If not see 1836ac495dSmrg# <http://www.gnu.org/licenses/>. 1936ac495dSmrg 2036ac495dSmrg# This file provides the language dependent support in the main Makefile. 2136ac495dSmrg# Each language makefile fragment must provide the following targets: 2236ac495dSmrg# 2336ac495dSmrg# foo.all.cross, foo.start.encap, foo.rest.encap, 2436ac495dSmrg# foo.install-common, foo.install-man, foo.install-info, foo.install-pdf, 2536ac495dSmrg# foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall, 2636ac495dSmrg# foo.mostlyclean, foo.clean, foo.distclean, 2736ac495dSmrg# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 2836ac495dSmrg# 2936ac495dSmrg# where `foo' is the name of the language. 3036ac495dSmrg# 3136ac495dSmrg# It should also provide rules for: 3236ac495dSmrg# 3336ac495dSmrg# - making any compiler driver (eg: g++) 3436ac495dSmrg# - the compiler proper (eg: cc1plus) 3536ac495dSmrg# - define the names for selecting the language in LANGUAGES. 3636ac495dSmrg 3736ac495dSmrg# 3836ac495dSmrg# Define the names for selecting jit in LANGUAGES. 3936ac495dSmrg# Note that it would be nice to move the dependency on g++ 4036ac495dSmrg# into the jit rule, but that needs a little bit of work 4136ac495dSmrg# to do the right thing within all.cross. 4236ac495dSmrg 4336ac495dSmrgLIBGCCJIT_VERSION_NUM = 0 4436ac495dSmrgLIBGCCJIT_MINOR_NUM = 0 4536ac495dSmrgLIBGCCJIT_RELEASE_NUM = 1 46*8feb0f0bSmrg 47*8feb0f0bSmrgifneq (,$(findstring darwin,$(host))) 48*8feb0f0bSmrg 49*8feb0f0bSmrgLIBGCCJIT_AGE = 1 50*8feb0f0bSmrgLIBGCCJIT_BASENAME = libgccjit 51*8feb0f0bSmrg 52*8feb0f0bSmrgLIBGCCJIT_SONAME = \ 53*8feb0f0bSmrg ${libdir}/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib 54*8feb0f0bSmrgLIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib 55*8feb0f0bSmrgLIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib 56*8feb0f0bSmrg 57*8feb0f0bSmrg# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and 58*8feb0f0bSmrg# LD_SONAME_OPTION depending if configure found them, using $(if) 59*8feb0f0bSmrg# We have to define a COMMA here, otherwise the commas in the "true" 60*8feb0f0bSmrg# result are treated as separators by the $(if). 61*8feb0f0bSmrgCOMMA := , 62*8feb0f0bSmrgLIBGCCJIT_VERSION_SCRIPT_OPTION = \ 63*8feb0f0bSmrg $(if $(LD_VERSION_SCRIPT_OPTION),\ 64*8feb0f0bSmrg -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) 65*8feb0f0bSmrg 66*8feb0f0bSmrgLIBGCCJIT_SONAME_OPTION = \ 67*8feb0f0bSmrg $(if $(LD_SONAME_OPTION), \ 68*8feb0f0bSmrg -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) 69*8feb0f0bSmrg 70*8feb0f0bSmrgLIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME) 71*8feb0f0bSmrgLIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) 72*8feb0f0bSmrg 73*8feb0f0bSmrgjit: $(LIBGCCJIT_FILENAME) \ 74*8feb0f0bSmrg $(LIBGCCJIT_SYMLINK) \ 75*8feb0f0bSmrg $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ 76*8feb0f0bSmrg $(FULL_DRIVER_NAME) 77*8feb0f0bSmrg 78*8feb0f0bSmrgelse 79*8feb0f0bSmrg 80*8feb0f0bSmrgLIBGCCJIT_LINKER_NAME = libgccjit.so 8136ac495dSmrgLIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM) 8236ac495dSmrgLIBGCCJIT_FILENAME = \ 8336ac495dSmrg $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM) 8436ac495dSmrg 8536ac495dSmrgLIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) 8636ac495dSmrgLIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME) 8736ac495dSmrg 88a2dc1f3fSmrg# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and 89a2dc1f3fSmrg# LD_SONAME_OPTION depending if configure found them, using $(if) 90a2dc1f3fSmrg# We have to define a COMMA here, otherwise the commas in the "true" 91a2dc1f3fSmrg# result are treated as separators by the $(if). 92a2dc1f3fSmrgCOMMA := , 93a2dc1f3fSmrgLIBGCCJIT_VERSION_SCRIPT_OPTION = \ 94a2dc1f3fSmrg $(if $(LD_VERSION_SCRIPT_OPTION),\ 95a2dc1f3fSmrg -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) 96a2dc1f3fSmrg 97a2dc1f3fSmrgLIBGCCJIT_SONAME_OPTION = \ 98a2dc1f3fSmrg $(if $(LD_SONAME_OPTION), \ 99a2dc1f3fSmrg -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) 100a2dc1f3fSmrg 10136ac495dSmrgjit: $(LIBGCCJIT_FILENAME) \ 10236ac495dSmrg $(LIBGCCJIT_SYMLINK) \ 10336ac495dSmrg $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ 10436ac495dSmrg $(FULL_DRIVER_NAME) 10536ac495dSmrg 106*8feb0f0bSmrgendif 107*8feb0f0bSmrg 108*8feb0f0bSmrgjit.serial = $(LIBGCCJIT_FILENAME) 109*8feb0f0bSmrg 11036ac495dSmrg# Tell GNU make to ignore these if they exist. 11136ac495dSmrg.PHONY: jit 11236ac495dSmrg 11336ac495dSmrgjit_OBJS = attribs.o \ 11436ac495dSmrg jit/dummy-frontend.o \ 11536ac495dSmrg jit/libgccjit.o \ 11636ac495dSmrg jit/jit-logging.o \ 11736ac495dSmrg jit/jit-recording.o \ 11836ac495dSmrg jit/jit-playback.o \ 11936ac495dSmrg jit/jit-result.o \ 12036ac495dSmrg jit/jit-tempdir.o \ 12136ac495dSmrg jit/jit-builtins.o \ 12236ac495dSmrg jit/jit-spec.o \ 12336ac495dSmrg gcc.o 12436ac495dSmrg 12536ac495dSmrg# Use strict warnings for this front end. 12636ac495dSmrgjit-warn = $(STRICT_WARN) 12736ac495dSmrg 128*8feb0f0bSmrgifneq (,$(findstring darwin,$(host))) 129*8feb0f0bSmrg# TODO : Construct a Darwin-style symbol export file. 130*8feb0f0bSmrgLIBGCCJIT_EXTRA_OPTS = -Wl,-compatibility_version,$(LIBGCCJIT_VERSION_NUM) \ 131*8feb0f0bSmrg -Wl,-current_version,$(LIBGCCJIT_VERSION_NUM).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_AGE) \ 132*8feb0f0bSmrg $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ 133*8feb0f0bSmrg $(LIBGCCJIT_SONAME_OPTION) 134*8feb0f0bSmrgelse 135*8feb0f0bSmrg 136*8feb0f0bSmrgLIBGCCJIT_EXTRA_OPTS = $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ 137*8feb0f0bSmrg $(LIBGCCJIT_SONAME_OPTION) 138*8feb0f0bSmrgendif 139*8feb0f0bSmrg 14036ac495dSmrg# We avoid using $(BACKEND) from Makefile.in in order to avoid pulling 14136ac495dSmrg# in main.o 14236ac495dSmrg$(LIBGCCJIT_FILENAME): $(jit_OBJS) \ 14336ac495dSmrg libbackend.a libcommon-target.a libcommon.a \ 14436ac495dSmrg $(CPPLIB) $(LIBDECNUMBER) \ 14536ac495dSmrg $(LIBDEPS) $(srcdir)/jit/libgccjit.map \ 14636ac495dSmrg $(EXTRA_GCC_OBJS) 14736ac495dSmrg +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ -shared \ 14836ac495dSmrg $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ 149a2dc1f3fSmrg $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ 15036ac495dSmrg $(EXTRA_GCC_OBJS) \ 151*8feb0f0bSmrg $(LIBGCCJIT_EXTRA_OPTS) 15236ac495dSmrg 153*8feb0f0bSmrg# Create symlinks 154*8feb0f0bSmrg 155*8feb0f0bSmrgifeq (,$(findstring darwin,$(host))) 156*8feb0f0bSmrg# but only one level for Darwin, version info is embedded. 15736ac495dSmrg$(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) 15836ac495dSmrg ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) 159*8feb0f0bSmrgendif 16036ac495dSmrg 16136ac495dSmrg$(LIBGCCJIT_LINKER_NAME_SYMLINK): $(LIBGCCJIT_SONAME_SYMLINK) 16236ac495dSmrg ln -sf $(LIBGCCJIT_SONAME_SYMLINK) $(LIBGCCJIT_LINKER_NAME_SYMLINK) 16336ac495dSmrg 16436ac495dSmrg# 16536ac495dSmrg# Build hooks: 16636ac495dSmrg 16736ac495dSmrgjit.all.cross: 16836ac495dSmrgjit.start.encap: 16936ac495dSmrgjit.rest.encap: 17036ac495dSmrg 17136ac495dSmrg# Documentation build hooks. 17236ac495dSmrg# 17336ac495dSmrg# The documentation can be built using the texinfo toolchain, or 17436ac495dSmrg# the sphinx toolchain 17536ac495dSmrg# 17636ac495dSmrg# The jit documentation is authored using Sphinx, which has numerous 17736ac495dSmrg# advantages over Texinfo, including: 17836ac495dSmrg# 17936ac495dSmrg# * much faster 18036ac495dSmrg# 18136ac495dSmrg# * use of CSS and JS to provide less of a 1990s feel in the generated 18236ac495dSmrg# HTML. 18336ac495dSmrg# 18436ac495dSmrg# * sane, stable HTML page and anchor names 18536ac495dSmrg# 18636ac495dSmrg# * sane HTML navigation: ability to move forward and back in the HTML 18736ac495dSmrg# at every node to read the HTML like a book 18836ac495dSmrg# 18936ac495dSmrg# * syntax-coloring of examples 19036ac495dSmrg# 19136ac495dSmrg# * the ability to "include" fragments of code inline. This is used 19236ac495dSmrg# heavily by the jit docs, so that the example code is shared by both 19336ac495dSmrg# the test suite and the documentation to ensure that the examples 19436ac495dSmrg# appearing in the docs actually compile and work 19536ac495dSmrg# 19636ac495dSmrg# Sphinx is not a "blessed" dependency, and so a prebuilt libgccjit.texinfo 19736ac495dSmrg# file built by Sphinx is checked into the source tree to avoid requiring 19836ac495dSmrg# everyone to have Sphinx installed. 19936ac495dSmrg# 20036ac495dSmrg# This prebuilt libgccjit.texinfo has the "include" fragments "baked in", 20136ac495dSmrg# and so contains the content from the sphinx toolchain, but lacks the 20236ac495dSmrg# syntax-coloring, and the generated HTML is (IMHO) greatly inferior to 20336ac495dSmrg# that generated by Sphinx. 20436ac495dSmrg 20536ac495dSmrg# These targets redirect HTML creation and installation to either 20636ac495dSmrg# jit.sphinx.(install-)html or jit.texinfo.(install-)html. 20736ac495dSmrgjit.html: jit.$(doc_build_sys).html 20836ac495dSmrgjit.install-html: jit.$(doc_build_sys).install-html 20936ac495dSmrg 21036ac495dSmrg# For now, use texinfo for pdf, since the sphinx latex toolchain currently 21136ac495dSmrg# fails for me deep inside pdflatex (see notes below) 21236ac495dSmrgjit.pdf: jit.texinfo.pdf 21336ac495dSmrgjit.install-pdf: jit.texinfo.install-pdf 21436ac495dSmrg 21536ac495dSmrg# Hooks for building docs using texinfo 21636ac495dSmrgJIT_TEXI_FILES = $(srcdir)/jit/docs/_build/texinfo/libgccjit.texi 21736ac495dSmrg 21836ac495dSmrgjit.info: doc/libgccjit.info 21936ac495dSmrgdoc/libgccjit.info: $(JIT_TEXI_FILES) 22036ac495dSmrg if test "x$(BUILD_INFO)" = xinfo; then \ 22136ac495dSmrg rm -f doc/libgccjit.info*; \ 22236ac495dSmrg $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ 22336ac495dSmrg -I $(gcc_docdir)/include -o $@ $<; \ 22436ac495dSmrg else true; fi 22536ac495dSmrg 22636ac495dSmrgjit.install-info: $(DESTDIR)$(infodir)/libgccjit.info 22736ac495dSmrg 22836ac495dSmrgjit.dvi: doc/libgccjit.dvi 22936ac495dSmrgdoc/libgccjit.dvi: $(JIT_TEXI_FILES) 23036ac495dSmrg $(TEXI2DVI) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< 23136ac495dSmrg 23236ac495dSmrgjit.texinfo.html: $(build_htmldir)/jit/index.html 23336ac495dSmrg 23436ac495dSmrg$(build_htmldir)/jit/index.html: $(srcdir)/jit/docs/_build/texinfo/libgccjit.texi 23536ac495dSmrg $(mkinstalldirs) $(@D) 23636ac495dSmrg rm -f $(@D)/* 23736ac495dSmrg $(TEXI2HTML) -I $(gcc_docdir)/include -I $(srcdir)/jit -o $(@D) $< 23836ac495dSmrg 23936ac495dSmrgjit.texinfo.install-html: jit.texinfo.html 24036ac495dSmrg @$(NORMAL_INSTALL) 24136ac495dSmrg test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)" 24236ac495dSmrg @for p in $(build_htmldir)/jit; do \ 24336ac495dSmrg if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \ 24436ac495dSmrg f=$(html__strip_dir) \ 24536ac495dSmrg if test -d "$$d$$p"; then \ 24636ac495dSmrg echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \ 24736ac495dSmrg $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ 24836ac495dSmrg echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ 24936ac495dSmrg $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \ 25036ac495dSmrg else \ 25136ac495dSmrg echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ 25236ac495dSmrg $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ 25336ac495dSmrg fi; \ 25436ac495dSmrg done 25536ac495dSmrg 25636ac495dSmrgjit.texinfo.pdf: doc/libgccjit.pdf 25736ac495dSmrg 25836ac495dSmrgdoc/libgccjit.pdf: $(JIT_TEXI_FILES) 25936ac495dSmrg $(TEXI2PDF) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< 26036ac495dSmrg 26136ac495dSmrgjit.texinfo.install-pdf: doc/libgccjit.pdf 26236ac495dSmrg @$(NORMAL_INSTALL) 26336ac495dSmrg test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc" 26436ac495dSmrg @for p in doc/libgccjit.pdf; do \ 26536ac495dSmrg if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 26636ac495dSmrg f=$(pdf__strip_dir) \ 26736ac495dSmrg echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \ 26836ac495dSmrg $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \ 26936ac495dSmrg done 27036ac495dSmrg 27136ac495dSmrg# Hooks for building docs using the Sphinx toolchain: 27236ac495dSmrg 27336ac495dSmrgSPHINX_BUILD_DIR=jit/sphinx-build 27436ac495dSmrg 27536ac495dSmrgjit.sphinx.html: 27636ac495dSmrg mkdir -p $(SPHINX_BUILD_DIR) 27736ac495dSmrg (cd $(srcdir)/jit/docs && \ 27836ac495dSmrg make html BUILDDIR=$(PWD)/$(SPHINX_BUILD_DIR) ) 27936ac495dSmrg 28036ac495dSmrgjit_htmldir=$(htmldir)/jit 28136ac495dSmrg 28236ac495dSmrgjit.sphinx.install-html: jit.sphinx.html 28336ac495dSmrg @$(NORMAL_INSTALL) 28436ac495dSmrg test -z "$(jit_htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(jit_htmldir)" 28536ac495dSmrg @for f in $(shell cd $(SPHINX_BUILD_DIR)/html && find) ; do \ 28636ac495dSmrg if test -f $(SPHINX_BUILD_DIR)/html/"$$f"; then \ 28736ac495dSmrg $(INSTALL_DATA) $(SPHINX_BUILD_DIR)/html/"$$f" $(DESTDIR)$(jit_htmldir)/"$$f"; \ 28836ac495dSmrg else \ 28936ac495dSmrg mkdir $(DESTDIR)$(jit_htmldir)/"$$f"; \ 29036ac495dSmrg fi; \ 29136ac495dSmrg done 29236ac495dSmrg 29336ac495dSmrg# (This one is currently failing deep inside pdflatex for me; 29436ac495dSmrg# see https://bugzilla.redhat.com/show_bug.cgi?id=1148845 ) 29536ac495dSmrgjit.sphinx.pdf: $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf 29636ac495dSmrg$(SPHINX_BUILD_DIR)/latex/libgccjit.pdf: 29736ac495dSmrg mkdir -p $(SPHINX_BUILD_DIR) 29836ac495dSmrg (cd $(srcdir)/jit/docs && \ 29936ac495dSmrg make latexpdf BUILDDIR=$(PWD)/$(SPHINX_BUILD_DIR) ) 30036ac495dSmrg 30136ac495dSmrgjit.sphinx.install-pdf: $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf 30236ac495dSmrg @$(NORMAL_INSTALL) 30336ac495dSmrg test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc" 30436ac495dSmrg @for p in $(SPHINX_BUILD_DIR)/latex/libgccjit.pdf; do \ 30536ac495dSmrg if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 30636ac495dSmrg f=$(pdf__strip_dir) \ 30736ac495dSmrg echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \ 30836ac495dSmrg $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \ 30936ac495dSmrg done 31036ac495dSmrg 31136ac495dSmrgjit.srcinfo: 31236ac495dSmrgjit.srcextra: 31336ac495dSmrg 31436ac495dSmrgjit.tags: 31536ac495dSmrg 31636ac495dSmrgjit.man: 31736ac495dSmrg 31836ac495dSmrgjit.srcman: 31936ac495dSmrg 32036ac495dSmrglang_checks += check-jit 32136ac495dSmrglang_checks_parallelized += check-jit 32236ac495dSmrg# This number is somewhat arbitrary. Two tests are much slower 32336ac495dSmrg# than all the others (test-combination.c and test-threads.c) so 32436ac495dSmrg# we want them to be placed in different "buckets". 32536ac495dSmrgcheck_jit_parallelize = 10 32636ac495dSmrg 327c0a68be4Smrg# No jit-specific selftests 328c0a68be4Smrgselftest-jit: 329c0a68be4Smrg 33036ac495dSmrg# 33136ac495dSmrg# Install hooks: 332*8feb0f0bSmrg 333*8feb0f0bSmrgjit.install-headers: installdirs 334*8feb0f0bSmrg $(INSTALL_DATA) $(srcdir)/jit/libgccjit.h \ 335*8feb0f0bSmrg $(DESTDIR)$(includedir)/libgccjit.h 336*8feb0f0bSmrg $(INSTALL_DATA) $(srcdir)/jit/libgccjit++.h \ 337*8feb0f0bSmrg $(DESTDIR)$(includedir)/libgccjit++.h 338*8feb0f0bSmrg 339*8feb0f0bSmrg 340*8feb0f0bSmrgifneq (,$(findstring darwin,$(host))) 341*8feb0f0bSmrg# but only one level for Darwin 342*8feb0f0bSmrg 343*8feb0f0bSmrgjit.install-common: installdirs jit.install-headers 344*8feb0f0bSmrg $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ 345*8feb0f0bSmrg $(DESTDIR)$(libdir)/$(LIBGCCJIT_FILENAME) 346*8feb0f0bSmrg ln -sf \ 347*8feb0f0bSmrg $(LIBGCCJIT_SONAME_SYMLINK)\ 348*8feb0f0bSmrg $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) 349*8feb0f0bSmrg 350*8feb0f0bSmrgelse 351*8feb0f0bSmrgjit.install-common: installdirs jit.install-headers 35236ac495dSmrg $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ 35336ac495dSmrg $(DESTDIR)/$(libdir)/$(LIBGCCJIT_FILENAME) 35436ac495dSmrg ln -sf \ 35536ac495dSmrg $(LIBGCCJIT_FILENAME) \ 35636ac495dSmrg $(DESTDIR)/$(libdir)/$(LIBGCCJIT_SONAME_SYMLINK) 35736ac495dSmrg ln -sf \ 35836ac495dSmrg $(LIBGCCJIT_SONAME_SYMLINK)\ 359*8feb0f0bSmrg $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) 360*8feb0f0bSmrgendif 36136ac495dSmrg 36236ac495dSmrgjit.install-man: 36336ac495dSmrg 36436ac495dSmrgjit.install-plugin: 36536ac495dSmrg 36636ac495dSmrgjit.uninstall: 36736ac495dSmrg 36836ac495dSmrg# 36936ac495dSmrg# Clean hooks: 37036ac495dSmrg# A lot of the ancillary files are deleted by the main makefile. 37136ac495dSmrg# We just have to delete files specific to us. 37236ac495dSmrg 37336ac495dSmrgjit.mostlyclean: 37436ac495dSmrg -rm -f $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SYMLINK) 37536ac495dSmrg -rm -f $(LIBGCCJIT_LINKER_NAME_SYMLINK) $(FULL_DRIVER_NAME) 37636ac495dSmrg -rm -f $(LIBGCCJIT_SONAME) 37736ac495dSmrg -rm -f $(jit_OBJS) 37836ac495dSmrg 37936ac495dSmrgjit.clean: 38036ac495dSmrg 38136ac495dSmrgjit.distclean: 38236ac495dSmrg 38336ac495dSmrgjit.maintainer-clean: 38436ac495dSmrg 38536ac495dSmrg# 38636ac495dSmrg# Stage hooks: 38736ac495dSmrg# The main makefile has already created stage?/jit. 38836ac495dSmrg 38936ac495dSmrgjit.stage1: stage1-start 39036ac495dSmrg -mv jit/*$(objext) stage1/jit 39136ac495dSmrgjit.stage2: stage2-start 39236ac495dSmrg -mv jit/*$(objext) stage2/jit 39336ac495dSmrgjit.stage3: stage3-start 39436ac495dSmrg -mv jit/*$(objext) stage3/jit 39536ac495dSmrgjit.stage4: stage4-start 39636ac495dSmrg -mv jit/*$(objext) stage4/jit 39736ac495dSmrgjit.stageprofile: stageprofile-start 39836ac495dSmrg -mv jit/*$(objext) stageprofile/jit 39936ac495dSmrgjit.stagefeedback: stagefeedback-start 40036ac495dSmrg -mv jit/*$(objext) stagefeedback/jit 401