2019-04-28 05:35:14 +03:00
|
|
|
# -*- mode: makefile-gmake; indent-tabs-mode: t -*-
|
|
|
|
|
2019-06-03 15:59:34 +03:00
|
|
|
SHELL = /bin/sh
|
2011-07-31 15:31:55 +04:00
|
|
|
NULLCMD = @NULLCMD@
|
2020-12-29 10:51:50 +03:00
|
|
|
silence = no # yes/no
|
|
|
|
yes_silence = $(silence:no=)
|
|
|
|
no_silence = $(silence:yes=)
|
2011-12-14 15:02:00 +04:00
|
|
|
n=$(NULLCMD)
|
2015-02-04 05:12:45 +03:00
|
|
|
ECHO1 = $(V:1=$n)
|
2009-02-24 13:01:08 +03:00
|
|
|
RUNCMD = $(SHELL)
|
2012-12-30 16:57:25 +04:00
|
|
|
CDPATH = .
|
2009-03-06 12:37:31 +03:00
|
|
|
CHDIR = @CHDIR@
|
2009-02-24 11:58:10 +03:00
|
|
|
exec = exec
|
2011-07-08 06:39:15 +04:00
|
|
|
NULL = /dev/null
|
2012-11-19 11:08:13 +04:00
|
|
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
#### Start of system configuration section. ####
|
|
|
|
|
|
|
|
srcdir = @srcdir@
|
2009-01-25 05:06:29 +03:00
|
|
|
top_srcdir = $(srcdir)
|
2007-06-10 07:06:15 +04:00
|
|
|
hdrdir = $(srcdir)/include
|
2020-04-04 21:57:05 +03:00
|
|
|
tooldir = $(srcdir)/tool
|
|
|
|
|
2012-02-29 08:07:06 +04:00
|
|
|
PLATFORM_DIR = @PLATFORM_DIR@
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2018-11-04 02:43:17 +03:00
|
|
|
CC_WRAPPER = @XCC_WRAPPER@
|
1998-01-16 15:13:05 +03:00
|
|
|
CC = @CC@
|
2010-10-16 05:55:01 +04:00
|
|
|
CPP = @CPP@
|
2012-05-16 09:39:06 +04:00
|
|
|
LD = @LD@
|
Rust YJIT
In December 2021, we opened an [issue] to solicit feedback regarding the
porting of the YJIT codebase from C99 to Rust. There were some
reservations, but this project was given the go ahead by Ruby core
developers and Matz. Since then, we have successfully completed the port
of YJIT to Rust.
The new Rust version of YJIT has reached parity with the C version, in
that it passes all the CRuby tests, is able to run all of the YJIT
benchmarks, and performs similarly to the C version (because it works
the same way and largely generates the same machine code). We've even
incorporated some design improvements, such as a more fine-grained
constant invalidation mechanism which we expect will make a big
difference in Ruby on Rails applications.
Because we want to be careful, YJIT is guarded behind a configure
option:
```shell
./configure --enable-yjit # Build YJIT in release mode
./configure --enable-yjit=dev # Build YJIT in dev/debug mode
```
By default, YJIT does not get compiled and cargo/rustc is not required.
If YJIT is built in dev mode, then `cargo` is used to fetch development
dependencies, but when building in release, `cargo` is not required,
only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer.
The YJIT command-line options remain mostly unchanged, and more details
about the build process are documented in `doc/yjit/yjit.md`.
The CI tests have been updated and do not take any more resources than
before.
The development history of the Rust port is available at the following
commit for interested parties:
https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be
Our hope is that Rust YJIT will be compiled and included as a part of
system packages and compiled binaries of the Ruby 3.2 release. We do not
anticipate any major problems as Rust is well supported on every
platform which YJIT supports, but to make sure that this process works
smoothly, we would like to reach out to those who take care of building
systems packages before the 3.2 release is shipped and resolve any
issues that may come up.
[issue]: https://bugs.ruby-lang.org/issues/18481
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
2022-04-19 21:40:21 +03:00
|
|
|
RUSTC = @RUSTC@
|
|
|
|
CARGO = @CARGO@
|
2004-12-06 13:42:49 +03:00
|
|
|
YACC = bison
|
1998-01-16 15:13:05 +03:00
|
|
|
PURIFY =
|
1999-01-20 07:59:39 +03:00
|
|
|
AUTOCONF = autoconf
|
2015-03-19 05:04:31 +03:00
|
|
|
CONFIGURE = @CONFIGURE@
|
1998-01-16 15:13:05 +03:00
|
|
|
@SET_MAKE@
|
2004-03-22 02:21:31 +03:00
|
|
|
MKFILES = @MAKEFILES@
|
2007-01-23 09:41:22 +03:00
|
|
|
BASERUBY = @BASERUBY@
|
2014-11-06 13:53:04 +03:00
|
|
|
HAVE_BASERUBY = @HAVE_BASERUBY@
|
2009-07-20 06:13:00 +04:00
|
|
|
TEST_RUNNABLE = @TEST_RUNNABLE@
|
2013-01-04 13:04:58 +04:00
|
|
|
CROSS_COMPILING = @CROSS_COMPILING@
|
2010-03-26 14:19:22 +03:00
|
|
|
DOXYGEN = @DOXYGEN@
|
1998-01-16 15:13:05 +03:00
|
|
|
|
1999-01-20 07:59:39 +03:00
|
|
|
prefix = @prefix@
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
exec_prefix = @exec_prefix@
|
|
|
|
bindir = @bindir@
|
|
|
|
sbindir = @sbindir@
|
|
|
|
libdir = @libdir@
|
|
|
|
libexecdir = @libexecdir@
|
2006-06-25 18:03:10 +04:00
|
|
|
datarootdir = @datarootdir@
|
2004-02-09 11:48:55 +03:00
|
|
|
datadir = @datadir@
|
2022-05-17 06:11:18 +03:00
|
|
|
target_os = @target_os@
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
arch = @arch@
|
|
|
|
sitearch = @sitearch@
|
|
|
|
sitedir = @sitedir@
|
2013-02-23 10:20:19 +04:00
|
|
|
archlibdir = @archlibdir@
|
2018-12-08 05:20:14 +03:00
|
|
|
includedir = @includedir@
|
|
|
|
archincludedir = @archincludedir@
|
|
|
|
rubylibprefix = @rubylibprefix@
|
|
|
|
rubylibdir = @rubylibdir@
|
|
|
|
rubyarchprefix = @rubyarchprefix@
|
|
|
|
rubyarchdir = @rubyarchdir@
|
|
|
|
rubyhdrdir = @rubyhdrdir@
|
|
|
|
rubyarchhdrdir = @rubyarchhdrdir@
|
2009-02-19 09:47:13 +03:00
|
|
|
ruby_version = @ruby_version@
|
2018-02-08 18:19:32 +03:00
|
|
|
RUBY_VERSION_NAME = @RUBY_VERSION_NAME@
|
2018-04-22 03:02:56 +03:00
|
|
|
UNIVERSAL_ARCHNAMES = @UNIVERSAL_ARCHNAMES@
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
|
2004-02-09 11:48:55 +03:00
|
|
|
TESTUI = console
|
|
|
|
TESTS =
|
2009-09-16 11:20:19 +04:00
|
|
|
INSTALLDOC = @INSTALLDOC@
|
|
|
|
DOCTARGETS = @RDOCTARGET@ @CAPITARGET@
|
2004-02-09 11:48:55 +03:00
|
|
|
|
2005-01-31 18:19:27 +03:00
|
|
|
EXTOUT = @EXTOUT@
|
2018-08-04 18:12:30 +03:00
|
|
|
TIMESTAMPDIR = $(EXTOUT)/.timestamp
|
2007-06-10 07:06:15 +04:00
|
|
|
arch_hdrdir = $(EXTOUT)/include/$(arch)
|
2015-01-18 06:56:52 +03:00
|
|
|
VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/missing
|
2004-02-09 11:48:55 +03:00
|
|
|
|
2005-11-11 02:22:03 +03:00
|
|
|
empty =
|
2013-03-22 11:57:09 +04:00
|
|
|
CC_VERSION = @CC_VERSION@
|
2005-11-11 02:22:03 +03:00
|
|
|
OUTFLAG = @OUTFLAG@$(empty)
|
2007-12-24 06:49:56 +03:00
|
|
|
COUTFLAG = @COUTFLAG@$(empty)
|
2021-04-09 08:49:30 +03:00
|
|
|
CPPOUTFLAG = >
|
2009-02-07 12:02:50 +03:00
|
|
|
ARCH_FLAG = @ARCH_FLAG@
|
2014-06-01 23:32:17 +04:00
|
|
|
CFLAGS_NO_ARCH = @CFLAGS@
|
|
|
|
CFLAGS = $(CFLAGS_NO_ARCH) $(ARCH_FLAG)
|
2008-05-08 11:41:23 +04:00
|
|
|
cflags = @cflags@
|
|
|
|
optflags = @optflags@
|
|
|
|
debugflags = @debugflags@
|
2012-09-16 03:58:04 +04:00
|
|
|
warnflags = @warnflags@ @strict_warnflags@
|
2013-12-17 08:32:51 +04:00
|
|
|
cppflags = @cppflags@
|
2022-08-11 05:02:28 +03:00
|
|
|
RUBY_DEVEL = @RUBY_DEVEL@ # "yes" or empty
|
|
|
|
_RUBY_DEVEL_enabled = $(RUBY_DEVEL:no=)
|
|
|
|
XCFLAGS = @XCFLAGS@ $(INCFLAGS) $(_RUBY_DEVEL_enabled:yes=-DRUBY_DEVEL=1)
|
2018-06-22 07:13:02 +03:00
|
|
|
USE_RUBYGEMS = @USE_RUBYGEMS@
|
|
|
|
USE_RUBYGEMS_ = $(USE_RUBYGEMS:yes=)
|
2019-08-26 10:30:45 +03:00
|
|
|
CPPFLAGS = @CPPFLAGS@ $(USE_RUBYGEMS_:no=-DDISABLE_RUBYGEMS=1)
|
2018-10-20 11:00:42 +03:00
|
|
|
MJIT_SUPPORT = @MJIT_SUPPORT@
|
2018-02-04 16:43:06 +03:00
|
|
|
MJIT_HEADER_FLAGS = @MJIT_HEADER_FLAGS@
|
2018-02-06 06:19:42 +03:00
|
|
|
MJIT_HEADER_SUFFIX =
|
|
|
|
MJIT_HEADER_ARCH =
|
2018-02-08 18:19:32 +03:00
|
|
|
MJIT_HEADER_INSTALL_DIR = @MJIT_HEADER_INSTALL_DIR@
|
2018-03-02 01:49:26 +03:00
|
|
|
MJIT_CC = @MJIT_CC@
|
2018-10-15 03:11:45 +03:00
|
|
|
MJIT_CFLAGS = @MJIT_CFLAGS@
|
2018-03-02 01:49:26 +03:00
|
|
|
MJIT_OPTFLAGS = @MJIT_OPTFLAGS@
|
|
|
|
MJIT_DEBUGFLAGS = @MJIT_DEBUGFLAGS@
|
2018-03-03 08:09:32 +03:00
|
|
|
MJIT_LDSHARED = @MJIT_LDSHARED@
|
2020-11-22 13:09:58 +03:00
|
|
|
MJIT_DLDFLAGS = $(XDLDFLAGS)
|
2018-08-04 18:12:30 +03:00
|
|
|
MJIT_HEADER = rb_mjit_header.h
|
|
|
|
MJIT_MIN_HEADER_NAME = rb_mjit_min_header-$(RUBY_PROGRAM_VERSION).h
|
|
|
|
MJIT_MIN_HEADER = $(MJIT_HEADER_BUILD_DIR)/$(MJIT_MIN_HEADER_NAME)
|
|
|
|
MJIT_HEADER_BUILD_DIR = $(EXTOUT)/include/$(arch)
|
2020-03-24 08:31:38 +03:00
|
|
|
MJIT_TABS=@MJIT_TABS@
|
Rust YJIT
In December 2021, we opened an [issue] to solicit feedback regarding the
porting of the YJIT codebase from C99 to Rust. There were some
reservations, but this project was given the go ahead by Ruby core
developers and Matz. Since then, we have successfully completed the port
of YJIT to Rust.
The new Rust version of YJIT has reached parity with the C version, in
that it passes all the CRuby tests, is able to run all of the YJIT
benchmarks, and performs similarly to the C version (because it works
the same way and largely generates the same machine code). We've even
incorporated some design improvements, such as a more fine-grained
constant invalidation mechanism which we expect will make a big
difference in Ruby on Rails applications.
Because we want to be careful, YJIT is guarded behind a configure
option:
```shell
./configure --enable-yjit # Build YJIT in release mode
./configure --enable-yjit=dev # Build YJIT in dev/debug mode
```
By default, YJIT does not get compiled and cargo/rustc is not required.
If YJIT is built in dev mode, then `cargo` is used to fetch development
dependencies, but when building in release, `cargo` is not required,
only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer.
The YJIT command-line options remain mostly unchanged, and more details
about the build process are documented in `doc/yjit/yjit.md`.
The CI tests have been updated and do not take any more resources than
before.
The development history of the Rust port is available at the following
commit for interested parties:
https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be
Our hope is that Rust YJIT will be compiled and included as a part of
system packages and compiled binaries of the Ruby 3.2 release. We do not
anticipate any major problems as Rust is well supported on every
platform which YJIT supports, but to make sure that this process works
smoothly, we would like to reach out to those who take care of building
systems packages before the 3.2 release is shipped and resolve any
issues that may come up.
[issue]: https://bugs.ruby-lang.org/issues/18481
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
2022-04-19 21:40:21 +03:00
|
|
|
YJIT_SUPPORT=@YJIT_SUPPORT@
|
|
|
|
YJIT_LIBS=@YJIT_LIBS@
|
|
|
|
YJIT_OBJ=@YJIT_OBJ@
|
|
|
|
CARGO_TARGET_DIR=@abs_top_builddir@/yjit/target
|
|
|
|
CARGO_BUILD_ARGS=@CARGO_BUILD_ARGS@
|
1998-01-16 15:13:05 +03:00
|
|
|
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
|
2021-08-12 06:33:37 +03:00
|
|
|
EXE_LDFLAGS = $(LDFLAGS)
|
2011-11-25 05:41:59 +04:00
|
|
|
EXTLDFLAGS = @EXTLDFLAGS@
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
|
2012-03-16 19:30:01 +04:00
|
|
|
EXTLIBS =
|
1998-01-16 15:13:05 +03:00
|
|
|
LIBS = @LIBS@ $(EXTLIBS)
|
|
|
|
MISSING = @LIBOBJS@ @ALLOCA@
|
2017-05-31 09:03:13 +03:00
|
|
|
ENABLE_SHARED = @ENABLE_SHARED@
|
1999-08-13 09:45:20 +04:00
|
|
|
LDSHARED = @LIBRUBY_LDSHARED@
|
2018-11-06 06:32:57 +03:00
|
|
|
DLDSHARED = @DLDSHARED@
|
2020-11-22 13:09:58 +03:00
|
|
|
XDLDFLAGS = @DLDFLAGS@
|
2011-11-27 13:54:12 +04:00
|
|
|
DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
|
1999-01-20 07:59:39 +03:00
|
|
|
SOLIBS = @SOLIBS@
|
2017-05-15 10:04:48 +03:00
|
|
|
ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@
|
2022-05-28 09:52:57 +03:00
|
|
|
MAINLIBS = $(YJIT_LIBS) @MAINLIBS@
|
2008-04-03 07:56:07 +04:00
|
|
|
ARCHMINIOBJS = @MINIOBJS@
|
2012-11-23 19:00:12 +04:00
|
|
|
DLNOBJ = @DLNOBJ@
|
2012-05-16 09:39:06 +04:00
|
|
|
ENCOBJS = @ENCOBJS@
|
|
|
|
EXTOBJS = @EXTOBJS@
|
2007-12-15 12:56:59 +03:00
|
|
|
BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@
|
2008-08-24 19:58:43 +04:00
|
|
|
BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@
|
|
|
|
BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@
|
2012-05-07 08:41:02 +04:00
|
|
|
POSTLINK = @POSTLINK@
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2009-05-08 05:14:14 +04:00
|
|
|
RUBY_BASE_NAME=@RUBY_BASE_NAME@
|
2017-09-25 09:31:38 +03:00
|
|
|
RUBY_API_VERSION=@RUBY_API_VERSION@
|
1999-08-13 09:45:20 +04:00
|
|
|
RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@
|
2000-09-04 08:43:26 +04:00
|
|
|
RUBY_SO_NAME=@RUBY_SO_NAME@
|
1999-08-13 09:45:20 +04:00
|
|
|
EXEEXT = @EXEEXT@
|
2012-05-19 06:35:37 +04:00
|
|
|
LIBEXT = @LIBEXT@
|
1999-08-13 09:45:20 +04:00
|
|
|
PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
RUBY = $(RUBY_INSTALL_NAME)
|
2010-07-27 14:03:23 +04:00
|
|
|
MINIRUBY = @MINIRUBY@\
|
|
|
|
$(MINIRUBYOPT)
|
2013-09-30 11:07:06 +04:00
|
|
|
# RUNRUBY_COMMAND:: runruby.rb or baseruby. do not append options directly
|
|
|
|
RUNRUBY_COMMAND = @RUNRUBY_COMMAND@
|
|
|
|
# RUNRUBY:: run ruby with RUN_OPTS which is passed to ruby
|
|
|
|
RUNRUBY = @RUNRUBY@ $(RUN_OPTS)
|
|
|
|
# RUNRUBY_DEBUGGER:: debugging option for runruby.rb
|
2012-10-05 11:28:32 +04:00
|
|
|
RUNRUBY_DEBUGGER = --debugger='gdb -x run.gdb --quiet --args'
|
2009-10-23 02:32:39 +04:00
|
|
|
XRUBY = @XRUBY@
|
2022-04-01 14:15:00 +03:00
|
|
|
BTESTRUBY = @BTESTRUBY@ -r./$(arch)-fake
|
2010-09-24 20:34:56 +04:00
|
|
|
INSTALL = @INSTALL@
|
|
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
|
|
XRUBY_LIBDIR = @XRUBY_LIBDIR@
|
|
|
|
XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@
|
|
|
|
XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@
|
2022-09-06 09:15:47 +03:00
|
|
|
|
|
|
|
yes_baseruby = $(HAVE_BASERUBY:no=)
|
|
|
|
no_baseruby = $(HAVE_BASERUBY:yes=)
|
2022-09-07 13:07:24 +03:00
|
|
|
BOOTSTRAPRUBY = $(yes_baseruby:yes=$(BASERUBY)) $(no_baseruby:no=$(MINIRUBY))
|
2022-09-06 09:15:47 +03:00
|
|
|
BOOTSTRAPRUBY_OPT = $(yes_baseruby:yes=-r./$(arch)-fake)
|
2022-09-09 20:32:20 +03:00
|
|
|
BOOTSTRAPRUBY_FAKE = $(yes_baseruby:yes=$(arch)-fake.rb)
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2019-06-29 04:07:07 +03:00
|
|
|
COROUTINE_H = @X_COROUTINE_H@
|
2022-05-28 09:52:57 +03:00
|
|
|
COROUTINE_OBJ = $(COROUTINE_H:.h=.$(OBJEXT))
|
2019-06-29 04:07:07 +03:00
|
|
|
COROUTINE_SRC = @X_COROUTINE_SRC@
|
2018-11-20 15:02:29 +03:00
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
#### End of system configuration section. ####
|
|
|
|
|
2016-01-09 03:19:16 +03:00
|
|
|
MAJOR= @MAJOR@
|
|
|
|
MINOR= @MINOR@
|
|
|
|
TEENY= @TEENY@
|
2018-12-28 05:12:34 +03:00
|
|
|
|
|
|
|
# here for MJIT_MIN_HEADER_NAME, not in common.mk
|
|
|
|
RUBY_PROGRAM_VERSION = $(MAJOR).$(MINOR).$(TEENY)
|
2016-01-09 03:19:16 +03:00
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY_A = @LIBRUBY_A@
|
|
|
|
LIBRUBY_SO = @LIBRUBY_SO@
|
2017-10-14 18:35:05 +03:00
|
|
|
LIBRUBY_SONAME= @LIBRUBY_SONAME@
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY_ALIASES= @LIBRUBY_ALIASES@
|
1999-01-20 07:59:39 +03:00
|
|
|
LIBRUBY = @LIBRUBY@
|
|
|
|
LIBRUBYARG = @LIBRUBYARG@
|
2002-11-14 16:51:19 +03:00
|
|
|
LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
|
|
|
|
LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
|
2012-07-03 06:16:08 +04:00
|
|
|
LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2015-02-04 05:12:45 +03:00
|
|
|
DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))
|
2015-01-27 08:39:52 +03:00
|
|
|
|
|
|
|
DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
|
|
|
|
eval.$(OBJEXT) \
|
|
|
|
gc.$(OBJEXT) \
|
|
|
|
hash.$(OBJEXT) \
|
|
|
|
load.$(OBJEXT) \
|
|
|
|
object.$(OBJEXT) \
|
|
|
|
parse.$(OBJEXT) \
|
|
|
|
string.$(OBJEXT) \
|
|
|
|
symbol.$(OBJEXT) \
|
2022-05-31 01:30:57 +03:00
|
|
|
vm.$(OBJEXT) \
|
|
|
|
$(YJIT_OBJ)
|
2015-01-27 08:39:52 +03:00
|
|
|
|
2007-02-28 04:33:57 +03:00
|
|
|
THREAD_MODEL = @THREAD_MODEL@
|
|
|
|
|
2015-10-04 18:43:58 +03:00
|
|
|
PREP = @PREP@
|
2004-02-22 06:58:44 +03:00
|
|
|
ARCHFILE = @ARCHFILE@
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
SETUP =
|
2003-08-12 06:12:48 +04:00
|
|
|
EXTSTATIC = @EXTSTATIC@
|
2014-07-03 07:40:24 +04:00
|
|
|
ENCSTATIC = @ENCSTATIC@
|
2008-07-03 02:06:05 +04:00
|
|
|
SET_LC_MESSAGES = env LC_MESSAGES=C
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
|
2009-08-13 11:20:16 +04:00
|
|
|
MAKEDIRS = @MKDIR_P@
|
2007-12-11 10:19:28 +03:00
|
|
|
CP = cp
|
|
|
|
MV = mv
|
2004-03-22 02:21:31 +03:00
|
|
|
RM = rm -f
|
2021-09-20 16:17:46 +03:00
|
|
|
RM1 = $(RM)
|
2010-07-22 01:26:56 +04:00
|
|
|
RMDIR = @RMDIR@
|
2009-01-25 05:06:29 +03:00
|
|
|
RMDIRS = @RMDIRS@
|
2009-06-09 05:58:51 +04:00
|
|
|
RMALL = @RMALL@
|
2020-03-31 11:36:52 +03:00
|
|
|
LN_S = @LN_S@
|
2004-03-22 02:21:31 +03:00
|
|
|
NM = @NM@
|
|
|
|
AR = @AR@
|
2017-07-31 07:04:10 +03:00
|
|
|
ARFLAGS = @ARFLAGS@$(empty)
|
2004-03-22 02:21:31 +03:00
|
|
|
RANLIB = @RANLIB@
|
2006-07-26 17:28:17 +04:00
|
|
|
AS = @AS@
|
2021-01-22 17:41:52 +03:00
|
|
|
ASFLAGS = @ASFLAGS@ $(ARCH_FLAG) $(INCFLAGS)
|
2021-05-06 18:10:16 +03:00
|
|
|
IFCHANGE = $(SHELL) $(tooldir)/ifchange
|
2008-12-07 17:17:36 +03:00
|
|
|
OBJDUMP = @OBJDUMP@
|
|
|
|
OBJCOPY = @OBJCOPY@
|
2017-04-10 04:22:48 +03:00
|
|
|
HAVE_GIT = @HAVE_GIT@
|
|
|
|
GIT = @GIT@
|
2009-01-16 11:33:02 +03:00
|
|
|
VCS = @VCS@
|
|
|
|
VCSUP = @VCSUP@
|
2016-12-17 10:48:58 +03:00
|
|
|
DTRACE = @DTRACE@ @DTRACE_OPT@
|
2012-11-16 19:22:37 +04:00
|
|
|
DTRACE_EXT = @DTRACE_EXT@
|
2015-01-27 08:39:52 +03:00
|
|
|
DTRACE_OBJ = @DTRACE_OBJ@
|
2015-02-04 05:12:45 +03:00
|
|
|
DTRACE_REBUILD= @DTRACE_REBUILD@
|
|
|
|
DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))
|
2004-03-22 02:21:31 +03:00
|
|
|
|
|
|
|
OBJEXT = @OBJEXT@
|
2019-07-01 14:05:06 +03:00
|
|
|
ASMEXT = @ASMEXT@
|
2017-10-14 18:35:05 +03:00
|
|
|
SOEXT = @SOEXT@
|
2007-12-15 12:56:59 +03:00
|
|
|
DLEXT = @DLEXT@
|
2003-01-20 15:51:50 +03:00
|
|
|
MANTYPE = @MANTYPE@
|
2010-11-11 14:45:32 +03:00
|
|
|
SYMBOL_PREFIX = @SYMBOL_PREFIX@
|
2003-01-20 15:51:50 +03:00
|
|
|
|
2006-09-16 11:06:57 +04:00
|
|
|
INSTALLED_LIST= .installed.list
|
2009-02-24 13:01:08 +03:00
|
|
|
|
2015-01-18 06:56:52 +03:00
|
|
|
NEWLINE_C = enc/trans/newline.c
|
2012-03-26 09:08:55 +04:00
|
|
|
MINIPRELUDE_C = miniprelude.c
|
2018-05-20 21:13:08 +03:00
|
|
|
GOLF_PRELUDE_C= golf_prelude.c
|
2013-01-04 15:19:19 +04:00
|
|
|
RBCONFIG = .rbconfig.time
|
2012-03-26 09:08:55 +04:00
|
|
|
|
2022-05-28 09:52:57 +03:00
|
|
|
MAINSRC = $(MAINOBJ:.$(OBJEXT)=.c)
|
2017-05-15 10:04:48 +03:00
|
|
|
|
2009-03-15 03:17:21 +03:00
|
|
|
SRC_FILE = $<
|
2012-11-16 19:22:37 +04:00
|
|
|
OS_SRC_FILE = $<
|
|
|
|
DEST_FILE = $@
|
|
|
|
OS_DEST_FILE = $@
|
2010-11-13 10:38:01 +03:00
|
|
|
|
|
|
|
MESSAGE_BEGIN = @for line in
|
|
|
|
MESSAGE_END = ; do echo "$$line"; done
|
2013-02-09 19:16:15 +04:00
|
|
|
ECHO_BEGIN = @sep=''; for word in
|
|
|
|
ECHO_END = ; do echo @ECHO_N@ "$$sep'$$word'@ECHO_C@"; sep=' '; done; echo
|
2010-11-18 01:37:48 +03:00
|
|
|
|
2021-08-07 12:32:24 +03:00
|
|
|
ACTIONS_GROUP = @$(NULLCMD) $(empty)
|
|
|
|
ACTIONS_ENDGROUP = @$(NULLCMD)
|
|
|
|
|
2014-07-18 05:47:01 +04:00
|
|
|
DESTDIR = @DESTDIR@
|
|
|
|
|
2010-11-18 01:37:48 +03:00
|
|
|
configure_args = @configure_args@
|
2004-03-22 02:21:31 +03:00
|
|
|
#### End of variables
|
|
|
|
|
2022-03-22 18:58:03 +03:00
|
|
|
ABI_VERSION_HDR = $(hdrdir)/ruby/internal/abi.h
|
|
|
|
|
2021-09-01 10:13:18 +03:00
|
|
|
CAT_DEPEND = sed -e 's/{\$$([^(){}]*)[^{}]*}//g' -e /AUTOGENERATED/q
|
|
|
|
|
2018-11-20 15:02:29 +03:00
|
|
|
.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)
|
2012-11-19 05:04:53 +04:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
all:
|
2003-01-25 21:59:34 +03:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
# Prevent GNU make v3 from overflowing arg limit on SysV.
|
|
|
|
.NOEXPORT:
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
miniruby$(EXEEXT):
|
2009-08-22 08:17:38 +04:00
|
|
|
@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
|
2010-11-11 15:46:23 +03:00
|
|
|
$(ECHO) linking $@
|
2021-08-12 06:33:37 +03:00
|
|
|
$(Q) $(PURIFY) $(CC) $(EXE_LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
|
2017-06-11 08:36:56 +03:00
|
|
|
$(Q) $(POSTLINK)
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
$(PROGRAM):
|
|
|
|
@$(RM) $@
|
2010-11-11 15:46:23 +03:00
|
|
|
$(ECHO) linking $@
|
2021-08-12 06:33:37 +03:00
|
|
|
$(Q) $(PURIFY) $(CC) $(EXE_LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@
|
2012-05-07 08:41:02 +04:00
|
|
|
$(Q) $(POSTLINK)
|
2004-02-09 11:48:55 +03:00
|
|
|
|
2022-09-02 19:08:47 +03:00
|
|
|
$(PROGRAM): @XRUBY_LIBPATHENV_WRAPPER@
|
|
|
|
|
2019-11-10 03:15:12 +03:00
|
|
|
PRE_LIBRUBY_UPDATE = [ -n "$(LIBRUBY_SO_UPDATE)" ] || $(gnumake:yes=exec) $(RM) $(LIBRUBY_EXTS)
|
2018-02-17 08:52:20 +03:00
|
|
|
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
# We must `rm' the library each time this rule is invoked because "updating" a
|
|
|
|
# MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not
|
|
|
|
# supported.
|
Rust YJIT
In December 2021, we opened an [issue] to solicit feedback regarding the
porting of the YJIT codebase from C99 to Rust. There were some
reservations, but this project was given the go ahead by Ruby core
developers and Matz. Since then, we have successfully completed the port
of YJIT to Rust.
The new Rust version of YJIT has reached parity with the C version, in
that it passes all the CRuby tests, is able to run all of the YJIT
benchmarks, and performs similarly to the C version (because it works
the same way and largely generates the same machine code). We've even
incorporated some design improvements, such as a more fine-grained
constant invalidation mechanism which we expect will make a big
difference in Ruby on Rails applications.
Because we want to be careful, YJIT is guarded behind a configure
option:
```shell
./configure --enable-yjit # Build YJIT in release mode
./configure --enable-yjit=dev # Build YJIT in dev/debug mode
```
By default, YJIT does not get compiled and cargo/rustc is not required.
If YJIT is built in dev mode, then `cargo` is used to fetch development
dependencies, but when building in release, `cargo` is not required,
only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer.
The YJIT command-line options remain mostly unchanged, and more details
about the build process are documented in `doc/yjit/yjit.md`.
The CI tests have been updated and do not take any more resources than
before.
The development history of the Rust port is available at the following
commit for interested parties:
https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be
Our hope is that Rust YJIT will be compiled and included as a part of
system packages and compiled binaries of the Ruby 3.2 release. We do not
anticipate any major problems as Rust is well supported on every
platform which YJIT supports, but to make sure that this process works
smoothly, we would like to reach out to those who take care of building
systems packages before the 3.2 release is shipped and resolve any
issues that may come up.
[issue]: https://bugs.ruby-lang.org/issues/18481
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
2022-04-19 21:40:21 +03:00
|
|
|
#
|
|
|
|
# In YJIT builds, merge libyjit.a with libruby_static.a
|
2004-03-22 02:21:31 +03:00
|
|
|
$(LIBRUBY_A):
|
|
|
|
@$(RM) $@
|
2018-02-17 08:52:21 +03:00
|
|
|
@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
2010-11-11 15:46:23 +03:00
|
|
|
$(ECHO) linking static-library $@
|
2014-11-27 23:04:48 +03:00
|
|
|
$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
|
2022-04-29 00:52:21 +03:00
|
|
|
$(Q) if [ 'no' != '$(YJIT_SUPPORT)' ]; then \
|
2022-05-17 17:47:22 +03:00
|
|
|
set -eu$(V0:1=x) && \
|
|
|
|
$(ECHO0) 'merging $(YJIT_LIBS) into $@' && \
|
2022-05-17 06:40:33 +03:00
|
|
|
$(RMALL) libyjit/ && \
|
|
|
|
$(MAKEDIRS) libyjit/ && \
|
2022-05-17 17:55:32 +03:00
|
|
|
trap "$(RMALL) libyjit/" 0 && \
|
2022-05-17 12:41:21 +03:00
|
|
|
(cd libyjit/ && $(AR) -x ../$(YJIT_LIBS)) && \
|
2022-05-17 06:40:33 +03:00
|
|
|
: "$(AR) $(ARFLAGS) $@ libyjit/*.$(OBJEXT)" && \
|
|
|
|
find libyjit/ -name '*.$(OBJEXT)' -exec $(AR) $(ARFLAGS) $@ '{}' '+' ; \
|
2022-04-29 00:52:21 +03:00
|
|
|
fi
|
2004-03-22 02:21:31 +03:00
|
|
|
@-$(RANLIB) $@ 2> /dev/null || true
|
2017-02-27 08:14:30 +03:00
|
|
|
|
|
|
|
verify-static-library: $(LIBRUBY_A)
|
2012-05-16 09:39:06 +04:00
|
|
|
$(ECHO) verifying static-library $@
|
2021-08-12 06:33:37 +03:00
|
|
|
@$(PURIFY) $(CC) $(EXE_LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)conftest$(EXEEXT)
|
2017-02-27 08:14:30 +03:00
|
|
|
@$(RMALL) conftest$(EXEEXT) conftest.c conftest.dSYM
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
$(LIBRUBY_SO):
|
2018-02-17 08:52:21 +03:00
|
|
|
@-[ -n "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
2010-11-11 15:46:23 +03:00
|
|
|
$(ECHO) linking shared-library $@
|
2015-01-30 14:45:29 +03:00
|
|
|
$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
|
2015-02-23 10:05:23 +03:00
|
|
|
-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)ruby_static_id_*' \
|
2017-10-29 02:54:16 +03:00
|
|
|
-L '$(SYMBOL_PREFIX)*_threadptr_*' -L '$(SYMBOL_PREFIX)*_ec_*' $@
|
2012-12-10 09:05:32 +04:00
|
|
|
$(Q) $(POSTLINK)
|
2018-06-01 10:13:38 +03:00
|
|
|
@-$(MINIRUBY) -e 'so, *aliases = ARGV; aliases.uniq!; aliases.delete(File.basename(so)); \
|
|
|
|
aliases.each { |link| File.delete link rescue nil; File.symlink so, link }' \
|
|
|
|
$(LIBRUBY_SO) $(LIBRUBY_ALIASES) || true
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2018-02-17 08:52:21 +03:00
|
|
|
LIBRUBY_WITH_EXT = @LIBRUBY_WITH_EXT@
|
|
|
|
$(LIBRUBY_$(LIBRUBY_WITH_EXT)): $(LIBRUBY_SO_UPDATE)
|
|
|
|
|
2021-08-29 08:08:53 +03:00
|
|
|
PKG_CONFIG = @PKG_CONFIG@
|
2010-10-25 19:29:32 +04:00
|
|
|
ruby_pc = @ruby_pc@
|
2021-08-29 08:08:53 +03:00
|
|
|
$(ruby_pc): config.status Makefile
|
|
|
|
$(Q)./config.status --file=-:$(srcdir)/template/ruby.pc.in | \
|
|
|
|
sed -e 's/\$$(\([A-Za-z_][A-Za-z0-9_]*\))/$${\1}/g' \
|
|
|
|
-e 's|^prefix=.*|prefix=$(prefix)|' \
|
|
|
|
> ruby.tmp.pc
|
|
|
|
$(Q)pkg_config=${PKG_CONFIG} && PKG_CONFIG_PATH=. $${pkg_config:-:} --print-errors ruby.tmp
|
|
|
|
$(Q)$(MV) -f ruby.tmp.pc $(ruby_pc)
|
|
|
|
|
|
|
|
pre-install-local:: pkgconfig-data
|
2010-10-25 19:29:32 +04:00
|
|
|
|
2018-08-16 12:27:53 +03:00
|
|
|
ruby-runner.h: template/ruby-runner.h.in config.status
|
2015-10-03 18:09:47 +03:00
|
|
|
@./config.status --file=$@:$(srcdir)/template/$(@F).in
|
|
|
|
|
2010-09-24 20:34:56 +04:00
|
|
|
install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \
|
2021-08-29 08:08:53 +03:00
|
|
|
$(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE) pkgconfig-data
|
2010-11-11 16:03:42 +03:00
|
|
|
$(ECHO) installing cross-compiling stuff
|
2010-11-12 14:51:42 +03:00
|
|
|
$(Q) $(MAKEDIRS) $(XRUBY_RUBYLIBDIR)/$(arch) $(XRUBY_RUBYHDRDIR)/$(arch)/ruby
|
|
|
|
$(Q) sed '/^\$$:\.unshift/q' $(arch)-fake.rb > fake.rb
|
|
|
|
$(Q) $(BASERUBY) -p \
|
2010-09-24 20:34:56 +04:00
|
|
|
-e '~/^\s*CONFIG\["LDFLAGS"\]/ and' \
|
|
|
|
-e '$$_[/(?=\s*"$$)/] = %q[ #{(CONFIG["LIBPATHFLAG"]%File.dirname(__FILE__)).strip}]' \
|
|
|
|
rbconfig.rb > fake-rbconfig.rb
|
|
|
|
$(INSTALL_SCRIPT) fake.rb $(XRUBY_RUBYLIBDIR)/$(arch)/fake.rb
|
|
|
|
$(INSTALL_SCRIPT) fake-rbconfig.rb $(XRUBY_RUBYLIBDIR)/$(arch)/rbconfig.rb
|
|
|
|
@$(RM) fake.rb fake-rbconfig.rb
|
|
|
|
$(INSTALL_DATA) $(arch_hdrdir)/ruby/config.h $(XRUBY_RUBYHDRDIR)/$(arch)/ruby
|
|
|
|
$(INSTALL_DATA) $(top_srcdir)/include/ruby/win32.h $(XRUBY_RUBYHDRDIR)/ruby
|
|
|
|
$(INSTALL_DATA) $(LIBRUBY) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)
|
|
|
|
$(INSTALL_PROGRAM) $(LIBRUBY_SO) $(XRUBY_RUBYLIBDIR)/$(arch)
|
|
|
|
|
2019-06-07 03:09:29 +03:00
|
|
|
Makefile: $(srcdir)/template/Makefile.in $(srcdir)/enc/Makefile.in
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
|
2022-11-02 05:33:08 +03:00
|
|
|
$(MKFILES): config.status $(srcdir)/version.h $(REVISION_H) $(ABI_VERSION_HDR)
|
2013-10-13 07:49:48 +04:00
|
|
|
@[ -f $@ ] && mv $@ $@.old
|
|
|
|
MAKE=$(MAKE) $(SHELL) ./config.status $@
|
|
|
|
@cmp $@ $@.old > /dev/null 2>&1 && echo $@ unchanged && exit 0; \
|
2013-01-10 12:45:42 +04:00
|
|
|
{ \
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
echo "all:; -@rm -f conftest.mk"; \
|
|
|
|
echo "conftest.mk: .force; @echo AUTO_REMAKE"; \
|
|
|
|
echo ".force:"; \
|
2003-08-16 18:58:34 +04:00
|
|
|
} > conftest.mk || exit 1; \
|
|
|
|
$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \
|
2013-10-13 07:49:48 +04:00
|
|
|
{ echo "$@ updated, restart."; exit 1; }
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
|
2008-08-14 07:01:42 +04:00
|
|
|
uncommon.mk: $(srcdir)/common.mk
|
|
|
|
sed 's/{\$$([^(){}]*)[^{}]*}//g' $< > $@
|
|
|
|
|
2010-11-18 01:37:48 +03:00
|
|
|
.PHONY: reconfig
|
2020-12-29 11:49:57 +03:00
|
|
|
reconfig-args = $(srcdir)/$(CONFIGURE) $(yes_silence:yes=--silent) $(configure_args)
|
|
|
|
config.status-args = ./config.status $(yes_silence:yes=--silent) --recheck
|
2022-10-19 08:57:07 +03:00
|
|
|
reconfig-exec-0 = test -t 1 && { : $${CONFIGURE_TTY=yes}; export CONFIGURE_TTY; }; exec 3>&1; exit `exec 4>&1; { "$$@" 3>&- 4>&-; echo $$? 1>&4; } | grep -F -v '(cached)' 1>&3 3>&- 4>&-`
|
2022-08-13 19:02:33 +03:00
|
|
|
reconfig-exec-1 = set -x; exec "$$@"
|
|
|
|
reconfig-exec-yes = $(reconfig-exec-1)
|
2010-11-18 01:37:48 +03:00
|
|
|
|
2015-03-21 03:11:20 +03:00
|
|
|
reconfig config.status: $(srcdir)/$(CONFIGURE) $(srcdir)/enc/Makefile.in \
|
2022-03-22 18:58:03 +03:00
|
|
|
$(hdrdir)/ruby/version.h $(ABI_VERSION_HDR)
|
2010-03-12 01:09:25 +03:00
|
|
|
@PWD= MINIRUBY="$(MINIRUBY)"; export MINIRUBY; \
|
2022-08-13 19:02:33 +03:00
|
|
|
set $(SHELL) $($@-args); $(reconfig-exec-$(silence:no=$(V)))
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2021-03-20 03:12:08 +03:00
|
|
|
$(srcdir)/$(CONFIGURE): $(srcdir)/configure.ac
|
2021-01-18 15:15:47 +03:00
|
|
|
$(CHDIR) $(srcdir) && exec $(AUTOCONF) -o $(@F)
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2017-04-02 06:05:10 +03:00
|
|
|
prereq: $(srcdir)/$(CONFIGURE)
|
|
|
|
|
2012-11-16 12:56:49 +04:00
|
|
|
incs: id.h
|
|
|
|
all-incs: probes.h
|
* probes.d: add DTrace probe declarations. [ruby-core:27448]
* array.c (empty_ary_alloc, ary_new): added array create DTrace probe.
* compile.c (rb_insns_name): allowing DTrace probes to access
instruction sequence name.
* Makefile.in: translate probes.d file to appropriate header file.
* common.mk: declare dependencies on the DTrace header.
* configure.in: add a test for existence of DTrace.
* eval.c (setup_exception): add a probe for when an exception is
raised.
* gc.c: Add DTrace probes for mark begin and end, and sweep begin and
end.
* hash.c (empty_hash_alloc): Add a probe for hash allocation.
* insns.def: Add probes for function entry and return.
* internal.h: function declaration for compile.c change.
* load.c (rb_f_load): add probes for `load` entry and exit, require
entry and exit, and wrapping search_required for load path search.
* object.c (rb_obj_alloc): added a probe for general object creation.
* parse.y (yycompile0): added a probe around parse and compile phase.
* string.c (empty_str_alloc, str_new): DTrace probes for string
allocation.
* test/dtrace/*: tests for DTrace probes.
* vm.c (vm_invoke_proc): add probes for function return on exception
raise, hash create, and instruction sequence execution.
* vm_core.h: add probe declarations for function entry and exit.
* vm_dump.c: add probes header file.
* vm_eval.c (vm_call0_cfunc, vm_call0_cfunc_with_frame): add probe on
function entry and return.
* vm_exec.c: expose instruction number to instruction name function.
* vm_insnshelper.c: add function entry and exit probes for cfunc
methods.
* vm_insnhelper.h: vm usage information is always collected, so
uncomment the functions.
12 19:14:50 2012 Akinori MUSHA <knu@iDaemons.org>
* configure.in (isinf, isnan): isinf() and isnan() are macros on
DragonFly which cannot be found by AC_REPLACE_FUNCS(). This
workaround enforces the fact that they exist on DragonFly.
12 15:59:38 2012 Shugo Maeda <shugo@ruby-lang.org>
* vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo),
vm_insnhelper.c (vm_search_method): revert r37616 because it's too
slow. [ruby-dev:46477]
* test/ruby/test_refinement.rb (test_inline_method_cache): skip
the test until the bug is fixed efficiently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 01:52:12 +04:00
|
|
|
|
2007-11-11 10:56:30 +03:00
|
|
|
# Things which should be considered:
|
|
|
|
# * with gperf v.s. without gperf
|
2009-10-13 15:43:01 +04:00
|
|
|
# * committers may have various versions of gperf
|
2007-11-11 10:56:30 +03:00
|
|
|
# * ./configure v.s. ../ruby/configure
|
2007-11-11 12:27:05 +03:00
|
|
|
# * svn checkout generate a file with mtime as current time
|
2009-10-13 15:43:01 +04:00
|
|
|
# * ext4 and XFS has a mtime with fractional part
|
2008-10-19 02:30:13 +04:00
|
|
|
lex.c: defs/keywords
|
2008-08-13 08:09:15 +04:00
|
|
|
@\
|
2008-10-19 02:30:13 +04:00
|
|
|
if cmp -s $(srcdir)/defs/lex.c.src $?; then \
|
2010-11-17 12:32:44 +03:00
|
|
|
[ $(Q) ] && echo copying $@ || set -x; \
|
2009-08-22 08:17:38 +04:00
|
|
|
$(CP) $(srcdir)/lex.c.blt $@; \
|
2007-11-11 10:56:30 +03:00
|
|
|
else \
|
2010-11-17 12:32:44 +03:00
|
|
|
[ $(Q) ] && echo generating $@ || set -x; \
|
2015-07-22 03:37:09 +03:00
|
|
|
gperf -C -P -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? \
|
2020-04-04 21:57:05 +03:00
|
|
|
| sed -f $(tooldir)/gperf.sed \
|
2015-07-22 03:37:09 +03:00
|
|
|
> $@.tmp && \
|
2009-08-22 08:17:38 +04:00
|
|
|
$(MV) $@.tmp $@ && \
|
|
|
|
$(CP) $? $(srcdir)/defs/lex.c.src && \
|
|
|
|
$(CP) $@ $(srcdir)/lex.c.blt; \
|
2007-11-11 10:56:30 +03:00
|
|
|
fi
|
1998-01-16 15:19:22 +03:00
|
|
|
|
2014-05-22 09:02:15 +04:00
|
|
|
JIS_PROPS_OPTIONS = -k1,3 -7 -c -j1 -i1 -t -C -P -t --ignore-case -H onig_jis_property_hash -Q onig_jis_property_pool -N onig_jis_property
|
|
|
|
|
2017-04-22 03:10:28 +03:00
|
|
|
$(srcdir)/enc/jis/props.h: enc/jis/props.kwd
|
2014-05-22 09:02:15 +04:00
|
|
|
$(MAKEDIRS) $(@D)
|
|
|
|
@set +e; \
|
|
|
|
if cmp -s $(?:.kwd=.src) $?; then \
|
|
|
|
set -x; \
|
|
|
|
$(CP) $(?:.kwd=.h.blt) $@; \
|
|
|
|
else \
|
|
|
|
set -x; \
|
2014-05-22 19:09:11 +04:00
|
|
|
gperf $(JIS_PROPS_OPTIONS) $? | \
|
2020-04-04 21:57:05 +03:00
|
|
|
sed -f $(tooldir)/gperf.sed > $@ && \
|
2014-05-22 09:02:15 +04:00
|
|
|
$(CP) $? $(?:.kwd=.src) && \
|
|
|
|
$(CP) $@ $(?:.kwd=.h.blt); \
|
|
|
|
fi
|
|
|
|
|
2022-05-28 09:52:57 +03:00
|
|
|
.c.$(OBJEXT):
|
2010-11-11 15:46:23 +03:00
|
|
|
@$(ECHO) compiling $<
|
2010-11-12 14:51:42 +03:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
2000-05-14 13:36:29 +04:00
|
|
|
|
2022-05-28 09:52:57 +03:00
|
|
|
.$(ASMEXT).$(OBJEXT):
|
2010-11-11 15:46:23 +03:00
|
|
|
@$(ECHO) assembling $<
|
2019-05-16 12:58:17 +03:00
|
|
|
$(Q) $(CC) $(ASFLAGS) -DSYMBOL_PREFIX=$(SYMBOL_PREFIX) -o $@ -c $<
|
2006-07-26 17:28:17 +04:00
|
|
|
|
2018-11-24 13:29:23 +03:00
|
|
|
.c.$(ASMEXT):
|
2010-11-11 15:46:23 +03:00
|
|
|
@$(ECHO) translating $<
|
2010-11-12 14:51:42 +03:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $<
|
2007-02-02 21:23:07 +03:00
|
|
|
|
2009-03-16 03:29:00 +03:00
|
|
|
.c.i:
|
2010-11-11 15:46:23 +03:00
|
|
|
@$(ECHO) preprocessing $<
|
2012-06-13 12:50:42 +04:00
|
|
|
$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $< > $@
|
2009-03-16 03:29:00 +03:00
|
|
|
|
2012-11-16 19:22:37 +04:00
|
|
|
.d.h:
|
|
|
|
@$(ECHO) translating probes $<
|
2012-11-22 12:01:49 +04:00
|
|
|
$(Q) $(DTRACE) -o $@.tmp -h -C $(INCFLAGS) -s $<
|
2015-10-29 08:33:16 +03:00
|
|
|
$(Q) sed -e 's/RUBY_/RUBY_DTRACE_/g' -e 's/PROBES_H_TMP/RUBY_PROBES_H/' -e 's/(char \*/(const char */g' -e 's/, char \*/, const char */g' $@.tmp > $@
|
2012-11-16 19:22:37 +04:00
|
|
|
$(Q) $(RM) $@.tmp
|
2012-11-13 10:35:30 +04:00
|
|
|
|
2012-11-22 15:25:01 +04:00
|
|
|
.dmyh.h:
|
2016-01-09 06:32:43 +03:00
|
|
|
@$(ECHO) making dummy $(DEST_FILE)
|
|
|
|
$(Q)echo '#include "$(*F).dmyh"' > $@
|
2012-11-22 13:16:48 +04:00
|
|
|
|
2015-02-04 05:12:45 +03:00
|
|
|
probes.stamp: $(DTRACE_REBUILD_OBJS)
|
|
|
|
$(Q) if test -f $@ -o -f probes.$(OBJEXT); then \
|
|
|
|
$(RM) $(DTRACE_REBUILD_OBJS) $@; \
|
|
|
|
$(ECHO0) "rebuilding objects which were modified by \"dtrace -G\""; \
|
|
|
|
$(MAKE) $(DTRACE_REBUILD_OBJS); \
|
|
|
|
fi
|
|
|
|
$(Q) touch $@
|
|
|
|
|
2018-06-02 15:17:16 +03:00
|
|
|
probes.$(OBJEXT): $(srcdir)/probes.d $(DTRACE_REBUILD:yes=probes.stamp)
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
@$(ECHO) processing probes in object files
|
2015-02-04 05:12:45 +03:00
|
|
|
$(Q) $(RM) $@
|
|
|
|
$(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_REBUILD_OBJS)
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
|
2018-10-19 15:31:02 +03:00
|
|
|
main: mjit-headers
|
|
|
|
yes-mjit-headers: $(MJIT_MIN_HEADER)
|
2018-08-04 18:12:30 +03:00
|
|
|
clean-local::
|
2019-11-10 03:15:12 +03:00
|
|
|
$(Q)$(RM) \
|
|
|
|
$(MJIT_HEADER) $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h \
|
|
|
|
$(MJIT_MIN_HEADER) $(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h \
|
|
|
|
$(MJIT_HEADER_INSTALL_DIR)/rb_mjit_min_header-*.h \
|
|
|
|
$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time mjit_config.h \
|
|
|
|
|| $(NULLCMD)
|
2018-11-07 13:55:23 +03:00
|
|
|
$(Q)$(RM) -r mjit_build_dir.*
|
2019-11-10 03:15:12 +03:00
|
|
|
-$(Q) $(RMDIRS) $(MJIT_HEADER_INSTALL_DIR) $(MJIT_HEADER_BUILD_DIR) $(TIMESTAMPDIR) 2> $(NULL) || $(NULLCMD)
|
2018-08-04 18:12:30 +03:00
|
|
|
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
# DTrace static library hacks described here:
|
2021-11-17 14:45:02 +03:00
|
|
|
# https://marc.info/?l=opensolaris-dtrace-discuss&m=114761203110734&w=4
|
2015-02-03 13:43:27 +03:00
|
|
|
ruby-glommed.$(OBJEXT):
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
@$(ECHO) generating a glommed object with DTrace probes for static library
|
2015-02-03 13:43:27 +03:00
|
|
|
$(Q) $(LD) -r -o $@ $(OBJS)
|
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 12:24:24 +04:00
|
|
|
|
2004-03-23 08:32:01 +03:00
|
|
|
clean-local::
|
2019-11-10 03:15:12 +03:00
|
|
|
$(Q)$(RM) \
|
|
|
|
ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \
|
|
|
|
enc/encinit.c enc/encinit.$(OBJEXT) $(pkgconfig_DATA) \
|
2020-01-18 10:45:31 +03:00
|
|
|
ruby-runner.$(OBJEXT) ruby-runner.h \
|
2019-11-10 03:15:12 +03:00
|
|
|
|| $(NULLCMD)
|
2022-05-25 12:26:24 +03:00
|
|
|
$(Q)find . -name '*.bc' -o -name '*.[is]' -delete
|
2020-01-18 10:45:31 +03:00
|
|
|
-$(Q)$(RMALL) exe/ *.dSYM
|
2004-03-23 08:32:01 +03:00
|
|
|
|
|
|
|
distclean-local::
|
2019-11-10 03:15:12 +03:00
|
|
|
$(Q)$(RM) \
|
|
|
|
ext/config.cache $(RBCONFIG) Doxyfile run.gdb \
|
|
|
|
$(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h verconf.h \
|
|
|
|
|| $(NULLCMD)
|
2010-12-30 14:18:12 +03:00
|
|
|
-$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2> /dev/null || true
|
2009-01-25 05:06:29 +03:00
|
|
|
|
2019-02-13 18:48:36 +03:00
|
|
|
ext/clean.sub:: ext/clean.mk
|
|
|
|
ext/distclean.sub:: ext/distclean.mk
|
|
|
|
ext/realclean.sub:: ext/realclean.mk
|
2017-03-01 10:53:15 +03:00
|
|
|
|
|
|
|
ext/clean.mk ext/distclean.mk ext/realclean.mk::
|
2017-03-29 12:24:10 +03:00
|
|
|
-$(Q) if [ -f $(EXTS_MK) ]; then exec $(MAKE) -f $(EXTS_MK) $(@F:.mk=); fi
|
2017-03-01 10:53:15 +03:00
|
|
|
|
|
|
|
ext/clean:: ext/clean.sub
|
|
|
|
ext/distclean:: ext/distclean.sub
|
|
|
|
ext/realclean:: ext/realclean.sub
|
2022-08-11 11:09:17 +03:00
|
|
|
.bundle/clean:: .bundle/clean.sub
|
|
|
|
.bundle/distclean:: .bundle/distclean.sub
|
|
|
|
.bundle/realclean:: .bundle/realclean.sub
|
2017-03-01 10:53:15 +03:00
|
|
|
|
2022-08-11 11:42:56 +03:00
|
|
|
ext/clean.sub .bundle/clean.sub:: ext/clean.mk
|
|
|
|
ext/distclean.sub .bundle/distclean.sub:: ext/distclean.mk
|
|
|
|
ext/realclean.sub .bundle/realclean.sub:: ext/realclean.mk
|
|
|
|
|
2017-03-01 10:53:15 +03:00
|
|
|
ext/clean.sub ext/distclean.sub ext/realclean.sub \
|
2022-08-11 11:09:17 +03:00
|
|
|
.bundle/clean.sub .bundle/distclean.sub .bundle/realclean.sub::
|
2017-03-01 10:53:15 +03:00
|
|
|
$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \
|
2010-01-19 08:29:18 +03:00
|
|
|
test "$$#" = 0 && set .; \
|
2010-08-06 13:56:22 +04:00
|
|
|
set dummy `\
|
2017-03-01 10:53:15 +03:00
|
|
|
cd $(@D) 2>/dev/null && \
|
2017-02-27 09:31:25 +03:00
|
|
|
find "$$@" \( -name Makefile -o -name exts.mk \) -print | \
|
2017-03-01 10:53:15 +03:00
|
|
|
sed -n 's:^\./::;s:^:$(@D)/:;s:/[^/][^/]*$$::p' | sort -u; \
|
2010-08-06 13:56:22 +04:00
|
|
|
`; shift; \
|
2010-07-11 12:01:59 +04:00
|
|
|
for dir do \
|
2017-02-28 11:22:00 +03:00
|
|
|
$(RM) "$$dir/exts.mk"; \
|
2017-03-01 10:53:15 +03:00
|
|
|
if [ -f "$$dir/Makefile" ]; then \
|
|
|
|
echo $(@F:.sub=)ing "$$dir"; \
|
|
|
|
(cd "$$dir" && exec $(MAKE) $(mflags) $(@F:.sub=)); \
|
|
|
|
fi; \
|
|
|
|
done || true
|
|
|
|
|
2022-08-11 11:09:17 +03:00
|
|
|
ext/distclean ext/realclean .bundle/distclean .bundle/realclean::
|
2017-03-01 10:53:15 +03:00
|
|
|
$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \
|
|
|
|
test "$$#" = 0 && set .; \
|
|
|
|
cd $(@D) 2>/dev/null && \
|
|
|
|
find "$$@" -type d -empty -exec $(RMDIRS) {} + 2> /dev/null || true
|
2017-05-09 05:55:51 +03:00
|
|
|
$(Q) $(RMDIRS) $(@D) 2> /dev/null || true
|
2010-06-14 21:32:03 +04:00
|
|
|
|
|
|
|
clean-enc distclean-enc realclean-enc:
|
|
|
|
@test -f "$(ENC_MK)" || exit 0; \
|
|
|
|
echo $(@:-enc=ing) encodings; \
|
2016-08-16 11:41:59 +03:00
|
|
|
exec $(MAKE) $(MAKE_ENC) $(@:-enc=)
|
2010-06-14 21:32:03 +04:00
|
|
|
|
2004-04-07 05:43:27 +04:00
|
|
|
ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
|
2010-11-11 16:03:42 +03:00
|
|
|
$(ECHO) compiling $@
|
2010-11-12 14:51:42 +03:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
|
2008-08-01 18:27:21 +04:00
|
|
|
|
2012-05-16 09:39:06 +04:00
|
|
|
enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)
|
|
|
|
|
2018-11-20 15:02:29 +03:00
|
|
|
cont.$(OBJEXT): $(COROUTINE_H)
|
2018-11-20 13:17:24 +03:00
|
|
|
|
2016-01-19 05:30:17 +03:00
|
|
|
update-src::
|
2009-03-06 12:37:31 +03:00
|
|
|
@$(CHDIR) "$(srcdir)" && LC_TIME=C exec $(VCSUP)
|
2009-01-16 11:33:02 +03:00
|
|
|
|
2016-01-20 15:00:14 +03:00
|
|
|
update-download:: update-config_files
|
|
|
|
|
2017-04-22 03:18:08 +03:00
|
|
|
after-update:: prereq
|
2013-06-14 09:10:15 +04:00
|
|
|
|
2017-05-20 16:00:41 +03:00
|
|
|
gcov:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(BASERUBY) $(tooldir)/run-gcov.rb
|
2017-05-20 16:00:41 +03:00
|
|
|
|
2017-07-04 19:02:19 +03:00
|
|
|
lcov:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(BASERUBY) $(tooldir)/run-lcov.rb
|
2017-07-04 19:02:19 +03:00
|
|
|
|
benchmark: introduce benchmark_driver.gem
Makefile.in: Clone benchmark-driver repository in benchmark/benchmark-driver
`make update-benchmark-driver`, like simplecov.
win32/Makefile.sub: Roughly do the same thing.
.gitignore: Ignore the cloned repository.
common.mk: Trigger `make update-benchmark-driver` to run `make benchmark`
and adjust arguments for benchmark_driver.gem.
benchmark/require.yml: renamed from benchmark/bm_require.rb, benchmark/prepare_require.rb
benchmark/require_thread.yml: renamed from benchmark/bm_require_thread.rb, benchmark/prepare_require_thread.rb
benchmark/so_count_words.yml: renamed from benchmark/bm_so_count_words.rb, benchmark/prepare_so_count_words.rb,
benchmark/wc.input.base
benchmark/so_k_nucleotide.yml: renamed from benchmark/bm_so_k_nucleotide.rb, benchmark/prepare_so_k_nucleotide.rb,
benchmark/make_fasta_output.rb
benchmark/so_reverse_complement.yml: renamed from benchmark/bm_so_reverse_complement.rb, benchmark/prepare_so_reverse_complement.rb,
benchmark/make_fasta_output.rb
I'm sorry but I made some duplications between benchmark/require.yml and benchmark/require_thread.yml,
and between benchmark/so_k_nucleotide.yml and benchmark/so_reverse_complement.yml.
If you're not comfortable with it, please combine these YAMLs to share
the same prelude. One YAML file can have multiple benchmark definitions
sharing prelude.
benchmark/driver.rb: Replace its core feature with benchmark_driver.gem.
Some old features are gone for now, but I'll add them again later.
[Misc #14902]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-08 17:38:05 +03:00
|
|
|
update-benchmark-driver:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(tooldir)/git-refresh -C $(srcdir)/benchmark $(Q1:0=-q) \
|
benchmark: introduce benchmark_driver.gem
Makefile.in: Clone benchmark-driver repository in benchmark/benchmark-driver
`make update-benchmark-driver`, like simplecov.
win32/Makefile.sub: Roughly do the same thing.
.gitignore: Ignore the cloned repository.
common.mk: Trigger `make update-benchmark-driver` to run `make benchmark`
and adjust arguments for benchmark_driver.gem.
benchmark/require.yml: renamed from benchmark/bm_require.rb, benchmark/prepare_require.rb
benchmark/require_thread.yml: renamed from benchmark/bm_require_thread.rb, benchmark/prepare_require_thread.rb
benchmark/so_count_words.yml: renamed from benchmark/bm_so_count_words.rb, benchmark/prepare_so_count_words.rb,
benchmark/wc.input.base
benchmark/so_k_nucleotide.yml: renamed from benchmark/bm_so_k_nucleotide.rb, benchmark/prepare_so_k_nucleotide.rb,
benchmark/make_fasta_output.rb
benchmark/so_reverse_complement.yml: renamed from benchmark/bm_so_reverse_complement.rb, benchmark/prepare_so_reverse_complement.rb,
benchmark/make_fasta_output.rb
I'm sorry but I made some duplications between benchmark/require.yml and benchmark/require_thread.yml,
and between benchmark/so_k_nucleotide.yml and benchmark/so_reverse_complement.yml.
If you're not comfortable with it, please combine these YAMLs to share
the same prelude. One YAML file can have multiple benchmark definitions
sharing prelude.
benchmark/driver.rb: Replace its core feature with benchmark_driver.gem.
Some old features are gone for now, but I'll add them again later.
[Misc #14902]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-08 17:38:05 +03:00
|
|
|
--branch $(BENCHMARK_DRIVER_GIT_REF) \
|
|
|
|
$(BENCHMARK_DRIVER_GIT_URL) benchmark-driver $(GIT_OPTS)
|
|
|
|
|
2015-11-09 11:38:20 +03:00
|
|
|
update-doclie:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(tooldir)/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
2017-03-30 09:44:27 +03:00
|
|
|
--branch $(DOCLIE_GIT_REF) \
|
|
|
|
$(DOCLIE_GIT_URL) doclie $(GIT_OPTS)
|
2015-11-09 11:38:20 +03:00
|
|
|
|
|
|
|
update-simplecov-html:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(tooldir)/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
2017-03-30 09:44:27 +03:00
|
|
|
--branch $(SIMPLECOV_HTML_GIT_REF) \
|
|
|
|
$(SIMPLECOV_HTML_GIT_URL) simplecov-html $(GIT_OPTS)
|
2015-11-09 11:38:20 +03:00
|
|
|
|
|
|
|
update-simplecov:
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(tooldir)/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
2017-03-30 09:44:27 +03:00
|
|
|
--branch $(SIMPLECOV_GIT_REF) \
|
2017-05-18 08:29:04 +03:00
|
|
|
$(SIMPLECOV_GIT_URL) simplecov $(GIT_OPTS)
|
2014-09-02 11:59:18 +04:00
|
|
|
|
2015-11-09 11:38:20 +03:00
|
|
|
update-coverage: update-simplecov update-simplecov-html update-doclie
|
|
|
|
|
2018-11-14 05:27:16 +03:00
|
|
|
update-known-errors:
|
|
|
|
errno --list | cut -d' ' -f1 | sort -u - $(srcdir)/defs/known_errors.def | \
|
|
|
|
$(IFCHANGE) $(srcdir)/defs/known_errors.def -
|
|
|
|
|
2009-03-06 08:28:42 +03:00
|
|
|
INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \
|
2022-11-30 08:42:35 +03:00
|
|
|
vmtc.inc vm.inc mjit_sp_inc.inc
|
2009-03-06 08:28:42 +03:00
|
|
|
|
2009-09-21 23:43:43 +04:00
|
|
|
$(INSNS): $(srcdir)/insns.def vm_opts.h \
|
|
|
|
$(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \
|
2020-04-04 21:57:05 +03:00
|
|
|
$(tooldir)/insns2vm.rb \
|
|
|
|
$(tooldir)/ruby_vm/controllers/application_controller.rb \
|
|
|
|
$(tooldir)/ruby_vm/helpers/c_escape.rb \
|
|
|
|
$(tooldir)/ruby_vm/helpers/dumper.rb \
|
|
|
|
$(tooldir)/ruby_vm/helpers/scanner.rb \
|
|
|
|
$(tooldir)/ruby_vm/loaders/insns_def.rb \
|
|
|
|
$(tooldir)/ruby_vm/loaders/opt_insn_unif_def.rb \
|
|
|
|
$(tooldir)/ruby_vm/loaders/opt_operand_def.rb \
|
|
|
|
$(tooldir)/ruby_vm/loaders/vm_opts_h.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/attribute.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/bare_instructions.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/c_expr.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/instructions.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/instructions_unifications.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/operands_unifications.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/trace_instructions.rb \
|
|
|
|
$(tooldir)/ruby_vm/models/typemap.rb \
|
|
|
|
$(tooldir)/ruby_vm/scripts/converter.rb \
|
|
|
|
$(tooldir)/ruby_vm/scripts/insns2vm.rb \
|
|
|
|
$(tooldir)/ruby_vm/views/_attributes.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_c_expr.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_comptime_insn_stack_increase.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_copyright.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_entry.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_len_info.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_name_info.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_operand_info.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_sp_pc_dependency.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_insn_type_chars.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_leaf_helpers.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_notice.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_sp_inc_helpers.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/_trace_instruction.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/insns.inc.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/insns_info.inc.erb \
|
2022-11-30 08:42:35 +03:00
|
|
|
$(tooldir)/ruby_vm/views/mjit_sp_inc.inc.erb \
|
2020-04-04 21:57:05 +03:00
|
|
|
$(tooldir)/ruby_vm/views/opt_sc.inc.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/optinsn.inc.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/optunifs.inc.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/vm.inc.erb \
|
|
|
|
$(tooldir)/ruby_vm/views/vmtc.inc.erb
|
2011-07-31 18:17:37 +04:00
|
|
|
$(ECHO) generating $@
|
2020-04-04 21:57:05 +03:00
|
|
|
$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb $(INSNS2VMOPT) $@
|
2013-05-16 11:54:04 +04:00
|
|
|
|
|
|
|
loadpath: verconf.h
|
|
|
|
@$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \
|
|
|
|
sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \
|
|
|
|
-e '/^ /!d;s/ *"\\0"$$//;s/" *"//g'
|
2016-06-09 12:12:44 +03:00
|
|
|
|
|
|
|
un-runnable:
|
|
|
|
$(ECHO) cannot make runnable, configure with --enable-load-relative.
|
|
|
|
$(Q) exit 1
|
2018-02-10 09:22:38 +03:00
|
|
|
|
|
|
|
mjit_config.h:
|
|
|
|
$(ECHO) making $@
|
|
|
|
@{ \
|
2020-04-04 21:57:05 +03:00
|
|
|
. $(tooldir)/mjit_archflag.sh; \
|
2018-11-15 09:22:17 +03:00
|
|
|
parse_arch_flags "$(UNIVERSAL_ARCHNAMES)" $(ARCH_FLAG); \
|
2018-02-15 14:16:51 +03:00
|
|
|
test "$(Q)" = @ || set -x; \
|
2018-02-10 09:22:38 +03:00
|
|
|
echo '#ifndef RUBY_MJIT_CONFIG_H'; \
|
|
|
|
echo '#define RUBY_MJIT_CONFIG_H 1'; \
|
2018-02-11 15:50:23 +03:00
|
|
|
echo; \
|
2018-02-20 05:37:28 +03:00
|
|
|
sep=; \
|
2018-12-08 05:20:14 +03:00
|
|
|
echo '#ifdef LOAD_RELATIVE'; \
|
2018-12-08 04:50:39 +03:00
|
|
|
quote MJIT_HEADER_INSTALL_DIR "/$(MJIT_HEADER_INSTALL_DIR)"; \
|
2018-12-08 05:20:14 +03:00
|
|
|
echo '#else'; \
|
|
|
|
quote MJIT_HEADER_INSTALL_DIR "$(rubyarchhdrdir)"; \
|
|
|
|
echo '#endif'; \
|
2018-12-08 04:50:39 +03:00
|
|
|
quote MJIT_MIN_HEADER_NAME "$(MJIT_MIN_HEADER_NAME)"; \
|
2018-02-20 04:23:23 +03:00
|
|
|
sep=,; \
|
2018-11-06 15:08:54 +03:00
|
|
|
quote "MJIT_CC_COMMON " $(MJIT_CC); \
|
2018-11-15 08:22:44 +03:00
|
|
|
quote "MJIT_CFLAGS MJIT_ARCHFLAG" $(MJIT_CFLAGS); \
|
2018-03-02 01:49:26 +03:00
|
|
|
quote "MJIT_OPTFLAGS " $(MJIT_OPTFLAGS); \
|
|
|
|
quote "MJIT_DEBUGFLAGS " $(MJIT_DEBUGFLAGS); \
|
2018-03-03 08:09:32 +03:00
|
|
|
quote "MJIT_LDSHARED " $(MJIT_LDSHARED); \
|
2018-11-15 08:22:44 +03:00
|
|
|
quote "MJIT_DLDFLAGS MJIT_ARCHFLAG" $(MJIT_DLDFLAGS); \
|
2018-02-20 05:37:28 +03:00
|
|
|
quote "MJIT_LIBS " $(LIBRUBYARG_SHARED); \
|
2018-11-07 05:49:26 +03:00
|
|
|
quote 'PRELOADENV "@PRELOADENV@"'; \
|
2018-11-21 12:27:47 +03:00
|
|
|
indent=$${archs:+' '}; \
|
2018-11-19 16:43:44 +03:00
|
|
|
define_arch_flags; \
|
2018-02-11 15:50:23 +03:00
|
|
|
echo; \
|
2018-02-10 09:22:38 +03:00
|
|
|
echo '#endif /* RUBY_MJIT_CONFIG_H */'; \
|
|
|
|
} > $@
|
2018-11-07 05:49:26 +03:00
|
|
|
|
2020-05-12 17:19:20 +03:00
|
|
|
yes-test-almost yes-test-all programs: mjit_build_dir.$(SOEXT)
|
2018-12-08 05:05:06 +03:00
|
|
|
mjit_build_dir.$(SOEXT): $(MJIT_MIN_HEADER) $(srcdir)/ruby-runner.c ruby-runner.h
|
2018-11-07 05:49:26 +03:00
|
|
|
$(ECHO) making $@
|
2019-08-26 10:30:45 +03:00
|
|
|
$(Q) $(DLDSHARED) $(MJIT_DLDFLAGS) $(ARCH_FLAG) $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) \
|
2018-12-08 04:50:39 +03:00
|
|
|
-DMAKE_MJIT_BUILD_DIR=1 -DMJIT_MIN_HEADER='"$(MJIT_MIN_HEADER)"' \
|
|
|
|
$(OUTFLAG)$@ $(srcdir)/ruby-runner.c
|
2019-05-16 17:26:57 +03:00
|
|
|
|
|
|
|
# yes-test-basic: leaked-globals
|
2020-04-04 21:57:05 +03:00
|
|
|
leaked-globals: $(COMMONOBJS) prog $(tooldir)/leaked-globals PHONY
|
2020-12-27 08:58:00 +03:00
|
|
|
$(Q) $(XRUBY) $(tooldir)/leaked-globals NM=$(NM) SYMBOL_PREFIX=$(SYMBOL_PREFIX) PLATFORM=$(hdrdir)/ruby/$(PLATFORM_DIR).h $(srcdir)/configure.ac $(COMMONOBJS)
|