mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Split YJIT rules for CODEOWNERS
This commit is contained in:
parent
9d18661e1d
commit
689b5ae752
2 changed files with 57 additions and 54 deletions
|
@ -357,60 +357,7 @@ ifneq ($(REVISION_IN_HEADER),$(REVISION_LATEST))
|
|||
$(srcdir)/revision.h: $(REVISION_H)
|
||||
endif
|
||||
|
||||
# Show Cargo progress when doing `make V=1`
|
||||
CARGO_VERBOSE_0 = -q
|
||||
CARGO_VERBOSE_1 =
|
||||
CARGO_VERBOSE = $(CARGO_VERBOSE_$(V))
|
||||
|
||||
# Select between different build profiles with macro substitution
|
||||
.PHONY: yjit-static-lib
|
||||
yjit-static-lib: yjit-static-lib-$(YJIT_SUPPORT)
|
||||
|
||||
# YJIT_SUPPORT=yes when `configure` gets `--enable-yjit`
|
||||
yjit-static-lib-yes:
|
||||
$(ECHO) 'building Rust YJIT (release mode)'
|
||||
$(Q) $(RUSTC) \
|
||||
--crate-name=yjit \
|
||||
--crate-type=staticlib \
|
||||
--edition=2021 \
|
||||
-C opt-level=3 \
|
||||
-C overflow-checks=on \
|
||||
'--out-dir=$(CARGO_TARGET_DIR)/release/' \
|
||||
$(top_srcdir)/yjit/src/lib.rs
|
||||
|
||||
yjit-static-lib-no:
|
||||
$(ECHO) 'Error: Tried to build YJIT without configuring it first. Check `make showconfig`?'
|
||||
@false
|
||||
|
||||
yjit-static-lib-dev:
|
||||
$(ECHO) 'building Rust YJIT (dev mode)'
|
||||
$(Q)$(CHDIR) $(top_srcdir)/yjit && \
|
||||
CARGO_TARGET_DIR='$(CARGO_TARGET_DIR)' \
|
||||
CARGO_TERM_PROGRESS_WHEN='never' \
|
||||
$(CARGO) $(CARGO_VERBOSE) build $(CARGO_BUILD_ARGS)
|
||||
|
||||
# This PHONY prerequisite makes it so that we always run cargo. When there are
|
||||
# no Rust changes on rebuild, Cargo does not touch the mtime of the static
|
||||
# library and GNU make avoids relinking. $(empty) seems to be important to
|
||||
# trigger rebuild each time in release mode.
|
||||
$(YJIT_LIBS): yjit-static-lib
|
||||
$(empty)
|
||||
|
||||
# Put this here instead of in common.mk to avoid breaking nmake builds
|
||||
# TODO: might need to move for BSD Make support
|
||||
miniruby$(EXEEXT): $(YJIT_LIBS)
|
||||
|
||||
# Generate Rust bindings. See source for details.
|
||||
# Needs `./configure --enable-yjit=dev` and Clang.
|
||||
ifneq ($(strip $(CARGO)),) # if configure found Cargo
|
||||
.PHONY: yjit-bindgen
|
||||
yjit-bindgen: yjit.$(OBJEXT)
|
||||
YJIT_SRC_ROOT_PATH='$(top_srcdir)' $(CARGO) run --manifest-path '$(top_srcdir)/yjit/bindgen/Cargo.toml' -- $(CFLAGS) $(XCFLAGS) $(CPPFLAGS)
|
||||
|
||||
# For CI, check whether YJIT's FFI bindings are up-to-date.
|
||||
check-yjit-bindings: yjit-bindgen
|
||||
git -C "$(top_srcdir)" diff --exit-code yjit/src/cruby_bindings.inc.rs
|
||||
endif
|
||||
include $(top_srcdir)/yjit/yjit.mk
|
||||
|
||||
# Query on the generated rdoc
|
||||
#
|
||||
|
|
56
yjit/yjit.mk
Normal file
56
yjit/yjit.mk
Normal file
|
@ -0,0 +1,56 @@
|
|||
# -*- mode: makefile-gmake; indent-tabs-mode: t -*-
|
||||
|
||||
# Show Cargo progress when doing `make V=1`
|
||||
CARGO_VERBOSE_0 = -q
|
||||
CARGO_VERBOSE_1 =
|
||||
CARGO_VERBOSE = $(CARGO_VERBOSE_$(V))
|
||||
|
||||
# Select between different build profiles with macro substitution
|
||||
.PHONY: yjit-static-lib
|
||||
yjit-static-lib: yjit-static-lib-$(YJIT_SUPPORT)
|
||||
|
||||
# YJIT_SUPPORT=yes when `configure` gets `--enable-yjit`
|
||||
yjit-static-lib-yes:
|
||||
$(ECHO) 'building Rust YJIT (release mode)'
|
||||
$(Q) $(RUSTC) \
|
||||
--crate-name=yjit \
|
||||
--crate-type=staticlib \
|
||||
--edition=2021 \
|
||||
-C opt-level=3 \
|
||||
-C overflow-checks=on \
|
||||
'--out-dir=$(CARGO_TARGET_DIR)/release/' \
|
||||
$(top_srcdir)/yjit/src/lib.rs
|
||||
|
||||
yjit-static-lib-no:
|
||||
$(ECHO) 'Error: Tried to build YJIT without configuring it first. Check `make showconfig`?'
|
||||
@false
|
||||
|
||||
yjit-static-lib-dev:
|
||||
$(ECHO) 'building Rust YJIT (dev mode)'
|
||||
$(Q)$(CHDIR) $(top_srcdir)/yjit && \
|
||||
CARGO_TARGET_DIR='$(CARGO_TARGET_DIR)' \
|
||||
CARGO_TERM_PROGRESS_WHEN='never' \
|
||||
$(CARGO) $(CARGO_VERBOSE) build $(CARGO_BUILD_ARGS)
|
||||
|
||||
# This PHONY prerequisite makes it so that we always run cargo. When there are
|
||||
# no Rust changes on rebuild, Cargo does not touch the mtime of the static
|
||||
# library and GNU make avoids relinking. $(empty) seems to be important to
|
||||
# trigger rebuild each time in release mode.
|
||||
$(YJIT_LIBS): yjit-static-lib
|
||||
$(empty)
|
||||
|
||||
# Put this here instead of in common.mk to avoid breaking nmake builds
|
||||
# TODO: might need to move for BSD Make support
|
||||
miniruby$(EXEEXT): $(YJIT_LIBS)
|
||||
|
||||
# Generate Rust bindings. See source for details.
|
||||
# Needs `./configure --enable-yjit=dev` and Clang.
|
||||
ifneq ($(strip $(CARGO)),) # if configure found Cargo
|
||||
.PHONY: yjit-bindgen
|
||||
yjit-bindgen: yjit.$(OBJEXT)
|
||||
YJIT_SRC_ROOT_PATH='$(top_srcdir)' $(CARGO) run --manifest-path '$(top_srcdir)/yjit/bindgen/Cargo.toml' -- $(CFLAGS) $(XCFLAGS) $(CPPFLAGS)
|
||||
|
||||
# For CI, check whether YJIT's FFI bindings are up-to-date.
|
||||
check-yjit-bindings: yjit-bindgen
|
||||
git -C "$(top_srcdir)" diff --exit-code yjit/src/cruby_bindings.inc.rs
|
||||
endif
|
Loading…
Add table
Reference in a new issue