1998-01-16 07:13:05 -05:00
|
|
|
SHELL = /bin/sh
|
2011-07-31 07:31:55 -04:00
|
|
|
NULLCMD = @NULLCMD@
|
2011-12-14 06:02:00 -05:00
|
|
|
n=$(NULLCMD)
|
2015-02-03 21:12:45 -05:00
|
|
|
ECHO1 = $(V:1=$n)
|
2009-02-24 05:01:08 -05:00
|
|
|
RUNCMD = $(SHELL)
|
2012-12-30 07:57:25 -05:00
|
|
|
CDPATH = .
|
2009-03-06 04:37:31 -05:00
|
|
|
CHDIR = @CHDIR@
|
2009-02-24 03:58:10 -05:00
|
|
|
exec = exec
|
2011-07-07 22:39:15 -04:00
|
|
|
NULL = /dev/null
|
2012-11-19 02:08:13 -05:00
|
|
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
|
|
#### Start of system configuration section. ####
|
|
|
|
|
|
|
|
srcdir = @srcdir@
|
2009-01-24 21:06:29 -05:00
|
|
|
top_srcdir = $(srcdir)
|
2007-06-09 23:06:15 -04:00
|
|
|
hdrdir = $(srcdir)/include
|
2012-02-28 23:07:06 -05:00
|
|
|
PLATFORM_DIR = @PLATFORM_DIR@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
|
|
CC = @CC@
|
2010-10-15 21:55:01 -04:00
|
|
|
CPP = @CPP@
|
2012-05-16 01:39:06 -04:00
|
|
|
LD = @LD@
|
2004-12-06 05:42:49 -05:00
|
|
|
YACC = bison
|
1998-01-16 07:13:05 -05:00
|
|
|
PURIFY =
|
1999-01-19 23:59:39 -05:00
|
|
|
AUTOCONF = autoconf
|
2016-01-02 22:12:20 -05:00
|
|
|
ACLOCAL = aclocal
|
2015-03-18 22:04:31 -04:00
|
|
|
CONFIGURE = @CONFIGURE@
|
1998-01-16 07:13:05 -05:00
|
|
|
@SET_MAKE@
|
2004-03-21 18:21:31 -05:00
|
|
|
MKFILES = @MAKEFILES@
|
2007-01-23 01:41:22 -05:00
|
|
|
BASERUBY = @BASERUBY@
|
2014-11-06 05:53:04 -05:00
|
|
|
HAVE_BASERUBY = @HAVE_BASERUBY@
|
2009-07-19 22:13:00 -04:00
|
|
|
TEST_RUNNABLE = @TEST_RUNNABLE@
|
2013-01-04 04:04:58 -05:00
|
|
|
CROSS_COMPILING = @CROSS_COMPILING@
|
2010-03-26 07:19:22 -04:00
|
|
|
DOXYGEN = @DOXYGEN@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
1999-01-19 23:59:39 -05: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 10:17:44 -04:00
|
|
|
exec_prefix = @exec_prefix@
|
|
|
|
bindir = @bindir@
|
|
|
|
sbindir = @sbindir@
|
|
|
|
libdir = @libdir@
|
|
|
|
libexecdir = @libexecdir@
|
2006-06-25 10:03:10 -04:00
|
|
|
datarootdir = @datarootdir@
|
2004-02-09 03:48:55 -05:00
|
|
|
datadir = @datadir@
|
* 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 10:17:44 -04:00
|
|
|
arch = @arch@
|
|
|
|
sitearch = @sitearch@
|
|
|
|
sitedir = @sitedir@
|
2013-02-23 01:20:19 -05:00
|
|
|
archlibdir = @archlibdir@
|
2009-02-19 01:47:13 -05:00
|
|
|
ruby_version = @ruby_version@
|
2018-02-08 10:19:32 -05:00
|
|
|
RUBY_VERSION_NAME = @RUBY_VERSION_NAME@
|
2018-04-21 20:02:56 -04: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 10:17:44 -04:00
|
|
|
|
2004-02-09 03:48:55 -05:00
|
|
|
TESTUI = console
|
|
|
|
TESTS =
|
2009-09-16 03:20:19 -04:00
|
|
|
INSTALLDOC = @INSTALLDOC@
|
|
|
|
DOCTARGETS = @RDOCTARGET@ @CAPITARGET@
|
2004-02-09 03:48:55 -05:00
|
|
|
|
2005-01-31 10:19:27 -05:00
|
|
|
EXTOUT = @EXTOUT@
|
2018-08-04 11:12:30 -04:00
|
|
|
TIMESTAMPDIR = $(EXTOUT)/.timestamp
|
2007-06-09 23:06:15 -04:00
|
|
|
arch_hdrdir = $(EXTOUT)/include/$(arch)
|
2015-01-17 22:56:52 -05:00
|
|
|
VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/missing
|
2004-02-09 03:48:55 -05:00
|
|
|
|
2005-11-10 18:22:03 -05:00
|
|
|
empty =
|
2013-03-22 03:57:09 -04:00
|
|
|
CC_VERSION = @CC_VERSION@
|
2005-11-10 18:22:03 -05:00
|
|
|
OUTFLAG = @OUTFLAG@$(empty)
|
2007-12-23 22:49:56 -05:00
|
|
|
COUTFLAG = @COUTFLAG@$(empty)
|
2018-02-04 10:17:44 -05:00
|
|
|
CPPOUTFLAG = $(COUTFLAG)
|
2009-02-07 04:02:50 -05:00
|
|
|
ARCH_FLAG = @ARCH_FLAG@
|
2014-06-01 15:32:17 -04:00
|
|
|
CFLAGS_NO_ARCH = @CFLAGS@
|
|
|
|
CFLAGS = $(CFLAGS_NO_ARCH) $(ARCH_FLAG)
|
2008-05-08 03:41:23 -04:00
|
|
|
cflags = @cflags@
|
|
|
|
optflags = @optflags@
|
|
|
|
debugflags = @debugflags@
|
2012-09-15 19:58:04 -04:00
|
|
|
warnflags = @warnflags@ @strict_warnflags@
|
2013-12-16 23:32:51 -05:00
|
|
|
cppflags = @cppflags@
|
2018-03-08 23:24:48 -05:00
|
|
|
MATHN = @MATHN@
|
|
|
|
XCFLAGS = @XCFLAGS@ $(MATHN:yes=-DCANONICALIZATION_FOR_MATHN)
|
2018-06-22 00:13:02 -04:00
|
|
|
USE_RUBYGEMS = @USE_RUBYGEMS@
|
|
|
|
USE_RUBYGEMS_ = $(USE_RUBYGEMS:yes=)
|
|
|
|
CPPFLAGS = @CPPFLAGS@ $(INCFLAGS) $(USE_RUBYGEMS_:no=-DDISABLE_RUBYGEMS=1)
|
2018-02-04 08:43:06 -05:00
|
|
|
MJIT_HEADER_FLAGS = @MJIT_HEADER_FLAGS@
|
2018-02-05 22:19:42 -05:00
|
|
|
MJIT_HEADER_SUFFIX =
|
|
|
|
MJIT_HEADER_ARCH =
|
2018-02-08 10:19:32 -05:00
|
|
|
MJIT_HEADER_INSTALL_DIR = @MJIT_HEADER_INSTALL_DIR@
|
2018-03-01 17:49:26 -05:00
|
|
|
MJIT_CC = @MJIT_CC@
|
|
|
|
MJIT_OPTFLAGS = @MJIT_OPTFLAGS@
|
|
|
|
MJIT_DEBUGFLAGS = @MJIT_DEBUGFLAGS@
|
2018-03-03 00:09:32 -05:00
|
|
|
MJIT_LDSHARED = @MJIT_LDSHARED@
|
2018-06-16 22:40:32 -04:00
|
|
|
MJIT_DLDFLAGS = @DLDFLAGS@
|
2018-08-04 11:12:30 -04: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)
|
1998-01-16 07:13:05 -05:00
|
|
|
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
|
2011-11-24 20:41:59 -05: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 10:17:44 -04:00
|
|
|
XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
|
2012-03-16 11:30:01 -04:00
|
|
|
EXTLIBS =
|
1998-01-16 07:13:05 -05:00
|
|
|
LIBS = @LIBS@ $(EXTLIBS)
|
|
|
|
MISSING = @LIBOBJS@ @ALLOCA@
|
2017-05-31 02:03:13 -04:00
|
|
|
ENABLE_SHARED = @ENABLE_SHARED@
|
1999-08-13 01:45:20 -04:00
|
|
|
LDSHARED = @LIBRUBY_LDSHARED@
|
2011-11-27 04:54:12 -05:00
|
|
|
DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
|
1999-01-19 23:59:39 -05:00
|
|
|
SOLIBS = @SOLIBS@
|
2017-05-15 03:04:48 -04:00
|
|
|
ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@
|
2001-04-01 12:53:41 -04:00
|
|
|
MAINLIBS = @MAINLIBS@
|
2008-04-02 23:56:07 -04:00
|
|
|
ARCHMINIOBJS = @MINIOBJS@
|
2012-11-23 10:00:12 -05:00
|
|
|
DLNOBJ = @DLNOBJ@
|
2012-05-16 01:39:06 -04:00
|
|
|
ENCOBJS = @ENCOBJS@
|
|
|
|
EXTOBJS = @EXTOBJS@
|
2007-12-15 04:56:59 -05:00
|
|
|
BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@
|
2008-08-24 11:58:43 -04:00
|
|
|
BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@
|
|
|
|
BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@
|
2012-05-07 00:41:02 -04:00
|
|
|
POSTLINK = @POSTLINK@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
2009-05-07 21:14:14 -04:00
|
|
|
RUBY_BASE_NAME=@RUBY_BASE_NAME@
|
2016-01-08 19:19:16 -05:00
|
|
|
RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@
|
2017-09-25 02:31:38 -04:00
|
|
|
RUBY_API_VERSION=@RUBY_API_VERSION@
|
1999-08-13 01:45:20 -04:00
|
|
|
RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@
|
2000-09-04 00:43:26 -04:00
|
|
|
RUBY_SO_NAME=@RUBY_SO_NAME@
|
1999-08-13 01:45:20 -04:00
|
|
|
EXEEXT = @EXEEXT@
|
2012-05-18 22:35:37 -04:00
|
|
|
LIBEXT = @LIBEXT@
|
1999-08-13 01: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 10:17:44 -04:00
|
|
|
RUBY = $(RUBY_INSTALL_NAME)
|
2010-07-27 06:03:23 -04:00
|
|
|
MINIRUBY = @MINIRUBY@\
|
|
|
|
$(MINIRUBYOPT)
|
2013-09-30 03: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 03:28:32 -04:00
|
|
|
RUNRUBY_DEBUGGER = --debugger='gdb -x run.gdb --quiet --args'
|
2009-10-22 18:32:39 -04:00
|
|
|
XRUBY = @XRUBY@
|
2012-05-16 22:48:59 -04:00
|
|
|
BTESTRUBY = @BTESTRUBY@\
|
|
|
|
$(MINIRUBYOPT)
|
2010-09-24 12: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@
|
2015-03-06 21:06:06 -05:00
|
|
|
BOOTSTRAPRUBY = @BOOTSTRAPRUBY@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
|
|
#### End of system configuration section. ####
|
|
|
|
|
2016-01-08 19:19:16 -05:00
|
|
|
MAJOR= @MAJOR@
|
|
|
|
MINOR= @MINOR@
|
|
|
|
TEENY= @TEENY@
|
2016-01-08 20:44:56 -05:00
|
|
|
RUBY_PROGRAM_VERSION = @RUBY_PROGRAM_VERSION@
|
2016-01-08 19:19:16 -05:00
|
|
|
|
1999-08-13 01:45:20 -04:00
|
|
|
LIBRUBY_A = @LIBRUBY_A@
|
|
|
|
LIBRUBY_SO = @LIBRUBY_SO@
|
2017-10-14 11:35:05 -04:00
|
|
|
LIBRUBY_SONAME= @LIBRUBY_SONAME@
|
1999-08-13 01:45:20 -04:00
|
|
|
LIBRUBY_ALIASES= @LIBRUBY_ALIASES@
|
1999-01-19 23:59:39 -05:00
|
|
|
LIBRUBY = @LIBRUBY@
|
|
|
|
LIBRUBYARG = @LIBRUBYARG@
|
2002-11-14 08:51:19 -05:00
|
|
|
LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
|
|
|
|
LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
|
2012-07-02 22: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 03:24:24 -05:00
|
|
|
LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@
|
1998-01-16 07:13:05 -05:00
|
|
|
|
2015-02-03 21:12:45 -05:00
|
|
|
DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))
|
2015-01-27 00:39:52 -05:00
|
|
|
|
|
|
|
DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
|
|
|
|
eval.$(OBJEXT) \
|
|
|
|
gc.$(OBJEXT) \
|
|
|
|
hash.$(OBJEXT) \
|
|
|
|
load.$(OBJEXT) \
|
|
|
|
object.$(OBJEXT) \
|
|
|
|
parse.$(OBJEXT) \
|
|
|
|
string.$(OBJEXT) \
|
|
|
|
symbol.$(OBJEXT) \
|
|
|
|
vm.$(OBJEXT)
|
|
|
|
|
2007-02-27 20:33:57 -05:00
|
|
|
THREAD_MODEL = @THREAD_MODEL@
|
|
|
|
|
2015-10-04 11:43:58 -04:00
|
|
|
PREP = @PREP@
|
2004-02-21 22:58:44 -05: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 10:17:44 -04:00
|
|
|
SETUP =
|
2003-08-11 22:12:48 -04:00
|
|
|
EXTSTATIC = @EXTSTATIC@
|
2014-07-02 23:40:24 -04:00
|
|
|
ENCSTATIC = @ENCSTATIC@
|
2008-07-02 18: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 10:17:44 -04:00
|
|
|
|
2009-08-13 03:20:16 -04:00
|
|
|
MAKEDIRS = @MKDIR_P@
|
2007-12-11 02:19:28 -05:00
|
|
|
CP = cp
|
|
|
|
MV = mv
|
2004-03-21 18:21:31 -05:00
|
|
|
RM = rm -f
|
2010-07-21 17:26:56 -04:00
|
|
|
RMDIR = @RMDIR@
|
2009-01-24 21:06:29 -05:00
|
|
|
RMDIRS = @RMDIRS@
|
2009-06-08 21:58:51 -04:00
|
|
|
RMALL = @RMALL@
|
2004-03-21 18:21:31 -05:00
|
|
|
NM = @NM@
|
|
|
|
AR = @AR@
|
2017-07-31 00:04:10 -04:00
|
|
|
ARFLAGS = @ARFLAGS@$(empty)
|
2004-03-21 18:21:31 -05:00
|
|
|
RANLIB = @RANLIB@
|
2006-07-26 09:28:17 -04:00
|
|
|
AS = @AS@
|
2010-10-26 05:09:45 -04:00
|
|
|
ASFLAGS = @ASFLAGS@ $(INCFLAGS)
|
2008-01-25 04:27:30 -05:00
|
|
|
IFCHANGE = $(srcdir)/tool/ifchange
|
2008-12-07 09:17:36 -05:00
|
|
|
OBJDUMP = @OBJDUMP@
|
|
|
|
OBJCOPY = @OBJCOPY@
|
2017-04-09 21:22:48 -04:00
|
|
|
HAVE_GIT = @HAVE_GIT@
|
|
|
|
GIT = @GIT@
|
2009-01-16 03:33:02 -05:00
|
|
|
VCS = @VCS@
|
|
|
|
VCSUP = @VCSUP@
|
2016-12-17 02:48:58 -05:00
|
|
|
DTRACE = @DTRACE@ @DTRACE_OPT@
|
2012-11-16 10:22:37 -05:00
|
|
|
DTRACE_EXT = @DTRACE_EXT@
|
2015-01-27 00:39:52 -05:00
|
|
|
DTRACE_OBJ = @DTRACE_OBJ@
|
2015-02-03 21:12:45 -05:00
|
|
|
DTRACE_REBUILD= @DTRACE_REBUILD@
|
|
|
|
DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))
|
2004-03-21 18:21:31 -05:00
|
|
|
|
|
|
|
OBJEXT = @OBJEXT@
|
2007-02-02 13:23:07 -05:00
|
|
|
ASMEXT = S
|
2017-10-14 11:35:05 -04:00
|
|
|
SOEXT = @SOEXT@
|
2007-12-15 04:56:59 -05:00
|
|
|
DLEXT = @DLEXT@
|
2003-01-20 07:51:50 -05:00
|
|
|
MANTYPE = @MANTYPE@
|
2010-11-11 06:45:32 -05:00
|
|
|
SYMBOL_PREFIX = @SYMBOL_PREFIX@
|
2003-01-20 07:51:50 -05:00
|
|
|
|
2006-09-16 03:06:57 -04:00
|
|
|
INSTALLED_LIST= .installed.list
|
2009-02-24 05:01:08 -05:00
|
|
|
|
2015-01-17 22:56:52 -05:00
|
|
|
NEWLINE_C = enc/trans/newline.c
|
2012-03-26 01:08:55 -04:00
|
|
|
MINIPRELUDE_C = miniprelude.c
|
2014-11-11 05:29:00 -05:00
|
|
|
PRELUDE_C = prelude.c
|
2018-05-20 14:13:08 -04:00
|
|
|
GOLF_PRELUDE_C= golf_prelude.c
|
2013-01-04 06:19:19 -05:00
|
|
|
RBCONFIG = .rbconfig.time
|
2012-03-26 01:08:55 -04:00
|
|
|
|
2017-05-15 03:04:48 -04:00
|
|
|
MAINSRC = $(MAINOBJ:@OBJEXT@=c)
|
|
|
|
|
2009-03-14 20:17:21 -04:00
|
|
|
SRC_FILE = $<
|
2012-11-16 10:22:37 -05:00
|
|
|
OS_SRC_FILE = $<
|
|
|
|
DEST_FILE = $@
|
|
|
|
OS_DEST_FILE = $@
|
2010-11-13 02:38:01 -05:00
|
|
|
|
|
|
|
MESSAGE_BEGIN = @for line in
|
|
|
|
MESSAGE_END = ; do echo "$$line"; done
|
2013-02-09 10:16:15 -05:00
|
|
|
ECHO_BEGIN = @sep=''; for word in
|
|
|
|
ECHO_END = ; do echo @ECHO_N@ "$$sep'$$word'@ECHO_C@"; sep=' '; done; echo
|
2010-11-17 17:37:48 -05:00
|
|
|
|
2014-07-17 21:47:01 -04:00
|
|
|
DESTDIR = @DESTDIR@
|
|
|
|
|
2010-11-17 17:37:48 -05:00
|
|
|
configure_args = @configure_args@
|
2004-03-21 18:21:31 -05:00
|
|
|
#### End of variables
|
|
|
|
|
2012-11-18 20:04:53 -05:00
|
|
|
.SUFFIXES: .inc .h .c .y .i .$(DTRACE_EXT)
|
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
all:
|
2003-01-25 13:59:34 -05:00
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
# Prevent GNU make v3 from overflowing arg limit on SysV.
|
|
|
|
.NOEXPORT:
|
1998-01-16 07:13:05 -05:00
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
miniruby$(EXEEXT):
|
2009-08-22 00:17:38 -04:00
|
|
|
@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
|
2010-11-11 07:46:23 -05:00
|
|
|
$(ECHO) linking $@
|
2015-03-08 01:30:32 -05:00
|
|
|
$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
|
2017-06-11 01:36:56 -04:00
|
|
|
$(Q) $(POSTLINK)
|
1998-01-16 07:13:05 -05:00
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
$(PROGRAM):
|
|
|
|
@$(RM) $@
|
2010-11-11 07:46:23 -05:00
|
|
|
$(ECHO) linking $@
|
2013-03-04 00:13:48 -05:00
|
|
|
$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@
|
2012-05-07 00:41:02 -04:00
|
|
|
$(Q) $(POSTLINK)
|
2004-02-09 03:48:55 -05:00
|
|
|
|
2018-02-17 00:52:20 -05:00
|
|
|
PRE_LIBRUBY_UPDATE = [ -n "$(LIBRUBY_SO_UPDATE)" ] || $(exec) $(RM) $(LIBRUBY_EXTS)
|
|
|
|
|
* 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-21 23:00:03 -05: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.
|
2004-03-21 18:21:31 -05:00
|
|
|
$(LIBRUBY_A):
|
|
|
|
@$(RM) $@
|
2018-02-17 00:52:21 -05:00
|
|
|
@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
2010-11-11 07:46:23 -05:00
|
|
|
$(ECHO) linking static-library $@
|
2014-11-27 15:04:48 -05:00
|
|
|
$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
|
2004-03-21 18:21:31 -05:00
|
|
|
@-$(RANLIB) $@ 2> /dev/null || true
|
2017-02-27 00:14:30 -05:00
|
|
|
|
|
|
|
verify-static-library: $(LIBRUBY_A)
|
2012-05-16 01:39:06 -04:00
|
|
|
$(ECHO) verifying static-library $@
|
2013-09-12 08:47:49 -04:00
|
|
|
@$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)conftest$(EXEEXT)
|
2017-02-27 00:14:30 -05:00
|
|
|
@$(RMALL) conftest$(EXEEXT) conftest.c conftest.dSYM
|
1999-01-19 23:59:39 -05:00
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
$(LIBRUBY_SO):
|
2018-02-17 00:52:21 -05:00
|
|
|
@-[ -n "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
2010-11-11 07:46:23 -05:00
|
|
|
$(ECHO) linking shared-library $@
|
2015-01-30 06:45:29 -05:00
|
|
|
$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
|
2015-02-23 02:05:23 -05:00
|
|
|
-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)ruby_static_id_*' \
|
2017-10-28 19:54:16 -04:00
|
|
|
-L '$(SYMBOL_PREFIX)*_threadptr_*' -L '$(SYMBOL_PREFIX)*_ec_*' $@
|
2012-12-10 00:05:32 -05:00
|
|
|
$(Q) $(POSTLINK)
|
2018-06-01 03:13:38 -04: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 07:13:05 -05:00
|
|
|
|
2018-02-17 00:52:21 -05:00
|
|
|
LIBRUBY_WITH_EXT = @LIBRUBY_WITH_EXT@
|
|
|
|
$(LIBRUBY_$(LIBRUBY_WITH_EXT)): $(LIBRUBY_SO_UPDATE)
|
|
|
|
|
2010-10-25 11:29:32 -04:00
|
|
|
ruby_pc = @ruby_pc@
|
2018-03-01 20:16:37 -05:00
|
|
|
ruby.pc: $(ruby_pc)
|
2018-08-16 05:27:53 -04:00
|
|
|
$(ruby_pc): config.status
|
2010-10-25 11:29:32 -04:00
|
|
|
@./config.status --file=$@:$(srcdir)/template/ruby.pc.in
|
|
|
|
|
2018-08-16 05:27:53 -04:00
|
|
|
ruby-runner.h: template/ruby-runner.h.in config.status
|
2015-10-03 11:09:47 -04:00
|
|
|
@./config.status --file=$@:$(srcdir)/template/$(@F).in
|
|
|
|
|
2015-12-05 03:48:28 -05:00
|
|
|
$(RBCONFIG): $(PREP)
|
2015-03-06 21:06:11 -05:00
|
|
|
|
2015-05-06 22:39:59 -04:00
|
|
|
rbconfig.rb: $(RBCONFIG)
|
|
|
|
|
2010-09-24 12:34:56 -04:00
|
|
|
install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \
|
|
|
|
$(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE)
|
2010-11-11 08:03:42 -05:00
|
|
|
$(ECHO) installing cross-compiling stuff
|
2010-11-12 06:51:42 -05: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 12: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)
|
|
|
|
|
2008-01-08 08:35:24 -05:00
|
|
|
Makefile: $(srcdir)/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 10:17:44 -04:00
|
|
|
|
2014-06-16 16:23:23 -04:00
|
|
|
$(MKFILES): config.status $(srcdir)/version.h
|
2013-10-12 23: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 03:45:42 -05: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 10:17:44 -04:00
|
|
|
echo "all:; -@rm -f conftest.mk"; \
|
|
|
|
echo "conftest.mk: .force; @echo AUTO_REMAKE"; \
|
|
|
|
echo ".force:"; \
|
2003-08-16 10:58:34 -04:00
|
|
|
} > conftest.mk || exit 1; \
|
|
|
|
$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \
|
2013-10-12 23: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 10:17:44 -04:00
|
|
|
|
2008-08-13 23:01:42 -04:00
|
|
|
uncommon.mk: $(srcdir)/common.mk
|
|
|
|
sed 's/{\$$([^(){}]*)[^{}]*}//g' $< > $@
|
|
|
|
|
2010-11-17 17:37:48 -05:00
|
|
|
.PHONY: reconfig
|
2015-03-20 20:11:20 -04:00
|
|
|
reconfig-args = $(srcdir)/$(CONFIGURE) $(configure_args)
|
2010-11-17 17:37:48 -05:00
|
|
|
config.status-args = ./config.status --recheck
|
2015-12-04 21:57:39 -05: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; } | fgrep -v '(cached)' 1>&3 3>&- 4>&-`
|
2010-11-17 17:37:48 -05:00
|
|
|
reconfig-exec-1 = set -x; "$$@"
|
|
|
|
|
2015-03-20 20:11:20 -04:00
|
|
|
reconfig config.status: $(srcdir)/$(CONFIGURE) $(srcdir)/enc/Makefile.in \
|
2012-04-17 00:55:14 -04:00
|
|
|
$(srcdir)/include/ruby/version.h
|
2010-03-11 17:09:25 -05:00
|
|
|
@PWD= MINIRUBY="$(MINIRUBY)"; export MINIRUBY; \
|
2010-11-17 17:37:48 -05:00
|
|
|
set $(SHELL) $($@-args); $(reconfig-exec-$(V))
|
1999-01-19 23:59:39 -05:00
|
|
|
|
2017-09-29 09:21:17 -04:00
|
|
|
$(srcdir)/$(CONFIGURE): $(srcdir)/configure.ac $(srcdir)/aclocal.m4
|
2015-03-18 22:04:31 -04:00
|
|
|
$(CHDIR) $(srcdir) && exec $(AUTOCONF) -o $(@F)
|
1999-01-19 23:59:39 -05:00
|
|
|
|
2016-01-03 09:19:09 -05:00
|
|
|
$(srcdir)/aclocal.m4:
|
2016-01-03 05:22:12 -05:00
|
|
|
$(CHDIR) $(srcdir) && \
|
|
|
|
type $(ACLOCAL) >/dev/null 2>&1 && exec $(ACLOCAL); \
|
|
|
|
touch $(@F)
|
2016-01-02 22:12:20 -05:00
|
|
|
|
2017-04-01 23:05:10 -04:00
|
|
|
prereq: $(srcdir)/$(CONFIGURE)
|
|
|
|
|
2012-11-16 03:56:49 -05: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-12 16:52:12 -05:00
|
|
|
|
2007-11-11 02:56:30 -05:00
|
|
|
# Things which should be considered:
|
|
|
|
# * with gperf v.s. without gperf
|
2009-10-13 07:43:01 -04:00
|
|
|
# * committers may have various versions of gperf
|
2007-11-11 02:56:30 -05:00
|
|
|
# * ./configure v.s. ../ruby/configure
|
|
|
|
# * GNU make v.s. HP-UX make # HP-UX make invokes the action if lex.c and keywords has same mtime.
|
2007-11-11 04:27:05 -05:00
|
|
|
# * svn checkout generate a file with mtime as current time
|
2009-10-13 07:43:01 -04:00
|
|
|
# * ext4 and XFS has a mtime with fractional part
|
2008-10-18 18:30:13 -04:00
|
|
|
lex.c: defs/keywords
|
2008-08-13 00:09:15 -04:00
|
|
|
@\
|
2008-10-18 18:30:13 -04:00
|
|
|
if cmp -s $(srcdir)/defs/lex.c.src $?; then \
|
2010-11-17 04:32:44 -05:00
|
|
|
[ $(Q) ] && echo copying $@ || set -x; \
|
2009-08-22 00:17:38 -04:00
|
|
|
$(CP) $(srcdir)/lex.c.blt $@; \
|
2007-11-11 02:56:30 -05:00
|
|
|
else \
|
2010-11-17 04:32:44 -05:00
|
|
|
[ $(Q) ] && echo generating $@ || set -x; \
|
2015-07-21 20:37:09 -04:00
|
|
|
gperf -C -P -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? \
|
2017-12-08 00:51:19 -05:00
|
|
|
| sed -f $(srcdir)/tool/gperf.sed \
|
2015-07-21 20:37:09 -04:00
|
|
|
> $@.tmp && \
|
2009-08-22 00:17:38 -04:00
|
|
|
$(MV) $@.tmp $@ && \
|
|
|
|
$(CP) $? $(srcdir)/defs/lex.c.src && \
|
|
|
|
$(CP) $@ $(srcdir)/lex.c.blt; \
|
2007-11-11 02:56:30 -05:00
|
|
|
fi
|
1998-01-16 07:19:22 -05:00
|
|
|
|
2014-05-22 01: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-21 20:10:28 -04:00
|
|
|
$(srcdir)/enc/jis/props.h: enc/jis/props.kwd
|
2014-05-22 01: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 11:09:11 -04:00
|
|
|
gperf $(JIS_PROPS_OPTIONS) $? | \
|
2017-12-08 00:51:19 -05:00
|
|
|
sed -f $(srcdir)/tool/gperf.sed > $@ && \
|
2014-05-22 01:02:15 -04:00
|
|
|
$(CP) $? $(?:.kwd=.src) && \
|
|
|
|
$(CP) $@ $(?:.kwd=.h.blt); \
|
|
|
|
fi
|
|
|
|
|
2004-03-21 18:21:31 -05:00
|
|
|
.c.@OBJEXT@:
|
2010-11-11 07:46:23 -05:00
|
|
|
@$(ECHO) compiling $<
|
2010-11-12 06:51:42 -05:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
2000-05-14 05:36:29 -04:00
|
|
|
|
2006-07-26 09:28:17 -04:00
|
|
|
.s.@OBJEXT@:
|
2010-11-11 07:46:23 -05:00
|
|
|
@$(ECHO) assembling $<
|
2010-11-12 06:51:42 -05:00
|
|
|
$(Q) $(AS) $(ASFLAGS) -o $@ $<
|
2006-07-26 09:28:17 -04:00
|
|
|
|
2007-02-02 13:23:07 -05:00
|
|
|
.c.S:
|
2010-11-11 07:46:23 -05:00
|
|
|
@$(ECHO) translating $<
|
2010-11-12 06:51:42 -05:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $<
|
2007-02-02 13:23:07 -05:00
|
|
|
|
2009-03-15 20:29:00 -04:00
|
|
|
.c.i:
|
2010-11-11 07:46:23 -05:00
|
|
|
@$(ECHO) preprocessing $<
|
2012-06-13 04:50:42 -04:00
|
|
|
$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $< > $@
|
2009-03-15 20:29:00 -04:00
|
|
|
|
2012-11-16 10:22:37 -05:00
|
|
|
.d.h:
|
|
|
|
@$(ECHO) translating probes $<
|
2012-11-22 03:01:49 -05:00
|
|
|
$(Q) $(DTRACE) -o $@.tmp -h -C $(INCFLAGS) -s $<
|
2015-10-29 01:33:16 -04: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 10:22:37 -05:00
|
|
|
$(Q) $(RM) $@.tmp
|
2012-11-13 01:35:30 -05:00
|
|
|
|
2012-11-22 06:25:01 -05:00
|
|
|
.dmyh.h:
|
2016-01-08 22:32:43 -05:00
|
|
|
@$(ECHO) making dummy $(DEST_FILE)
|
|
|
|
$(Q)echo '#include "$(*F).dmyh"' > $@
|
2012-11-22 04:16:48 -05:00
|
|
|
|
2015-02-03 21:12:45 -05: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 08:17:16 -04: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 03:24:24 -05:00
|
|
|
@$(ECHO) processing probes in object files
|
2015-02-03 21:12:45 -05: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 03:24:24 -05:00
|
|
|
|
2018-08-04 11:12:30 -04:00
|
|
|
main: $(MJIT_MIN_HEADER)
|
|
|
|
mjit-headers: $(MJIT_MIN_HEADER)
|
|
|
|
clean-local::
|
|
|
|
$(Q)$(RM) $(MJIT_HEADER) $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h
|
|
|
|
$(Q)$(RM) $(MJIT_MIN_HEADER) $(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h
|
|
|
|
$(Q)$(RM) $(MJIT_HEADER_INSTALL_DIR)/rb_mjit_min_header-*.h
|
|
|
|
$(Q)$(RM) $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time mjit_config.h
|
|
|
|
-$(Q) $(RMDIRS) $(MJIT_HEADER_INSTALL_DIR) 2> $(NULL) || exit 0
|
|
|
|
|
* 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 03:24:24 -05:00
|
|
|
# DTrace static library hacks described here:
|
|
|
|
# http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html
|
2015-02-03 05:43:27 -05: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 03:24:24 -05:00
|
|
|
@$(ECHO) generating a glommed object with DTrace probes for static library
|
2015-02-03 05:43:27 -05: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 03:24:24 -05:00
|
|
|
|
2004-03-23 00:32:01 -05:00
|
|
|
clean-local::
|
2012-05-16 01:39:06 -04:00
|
|
|
$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \
|
|
|
|
enc/encinit.c enc/encinit.$(OBJEXT)
|
2010-12-30 06:18:12 -05:00
|
|
|
-$(Q)$(RM) $(pkgconfig_DATA)
|
2017-09-17 00:14:51 -04:00
|
|
|
-$(Q)$(RMALL) exe/ ruby-runner.h *.dSYM
|
2004-03-23 00:32:01 -05:00
|
|
|
|
|
|
|
distclean-local::
|
2010-12-30 06:18:12 -05:00
|
|
|
$(Q)$(RM) ext/config.cache $(RBCONFIG) Doxyfile
|
|
|
|
-$(Q)$(RM) run.gdb
|
2012-05-03 12:57:51 -04:00
|
|
|
-$(Q)$(RM) $(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h verconf.h
|
2010-12-30 06:18:12 -05:00
|
|
|
-$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2> /dev/null || true
|
2009-01-24 21:06:29 -05:00
|
|
|
|
2017-03-01 02:53:15 -05:00
|
|
|
ext/clean.sub gems/clean.sub:: ext/clean.mk
|
|
|
|
ext/distclean.sub gems/distclean.sub:: ext/distclean.mk
|
|
|
|
ext/realclean.sub gems/realclean.sub:: ext/realclean.mk
|
|
|
|
|
|
|
|
ext/clean.mk ext/distclean.mk ext/realclean.mk::
|
2017-03-29 05:24:10 -04:00
|
|
|
-$(Q) if [ -f $(EXTS_MK) ]; then exec $(MAKE) -f $(EXTS_MK) $(@F:.mk=); fi
|
2017-03-01 02:53:15 -05:00
|
|
|
|
|
|
|
ext/clean:: ext/clean.sub
|
|
|
|
ext/distclean:: ext/distclean.sub
|
|
|
|
ext/realclean:: ext/realclean.sub
|
|
|
|
gems/clean:: gems/clean.sub
|
|
|
|
gems/distclean:: gems/distclean.sub
|
|
|
|
gems/realclean:: gems/realclean.sub
|
|
|
|
|
|
|
|
ext/clean.sub ext/distclean.sub ext/realclean.sub \
|
|
|
|
gems/clean.sub gems/distclean.sub gems/realclean.sub::
|
|
|
|
$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \
|
2010-01-19 00:29:18 -05:00
|
|
|
test "$$#" = 0 && set .; \
|
2010-08-06 05:56:22 -04:00
|
|
|
set dummy `\
|
2017-03-01 02:53:15 -05:00
|
|
|
cd $(@D) 2>/dev/null && \
|
2017-02-27 01:31:25 -05:00
|
|
|
find "$$@" \( -name Makefile -o -name exts.mk \) -print | \
|
2017-03-01 02:53:15 -05:00
|
|
|
sed -n 's:^\./::;s:^:$(@D)/:;s:/[^/][^/]*$$::p' | sort -u; \
|
2010-08-06 05:56:22 -04:00
|
|
|
`; shift; \
|
2010-07-11 04:01:59 -04:00
|
|
|
for dir do \
|
2017-02-28 03:22:00 -05:00
|
|
|
$(RM) "$$dir/exts.mk"; \
|
2017-03-01 02:53:15 -05:00
|
|
|
if [ -f "$$dir/Makefile" ]; then \
|
|
|
|
echo $(@F:.sub=)ing "$$dir"; \
|
|
|
|
(cd "$$dir" && exec $(MAKE) $(mflags) $(@F:.sub=)); \
|
|
|
|
fi; \
|
|
|
|
done || true
|
|
|
|
|
|
|
|
ext/distclean ext/realclean gems/distclean gems/realclean::
|
|
|
|
$(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-08 22:55:51 -04:00
|
|
|
$(Q) $(RMDIRS) $(@D) 2> /dev/null || true
|
2010-06-14 13:32:03 -04:00
|
|
|
|
|
|
|
clean-enc distclean-enc realclean-enc:
|
|
|
|
@test -f "$(ENC_MK)" || exit 0; \
|
|
|
|
echo $(@:-enc=ing) encodings; \
|
2016-08-16 04:41:59 -04:00
|
|
|
exec $(MAKE) $(MAKE_ENC) $(@:-enc=)
|
2010-06-14 13:32:03 -04:00
|
|
|
|
2004-04-06 21:43:27 -04:00
|
|
|
ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
|
2010-11-11 08:03:42 -05:00
|
|
|
$(ECHO) compiling $@
|
2010-11-12 06:51:42 -05:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
|
2008-08-01 10:27:21 -04:00
|
|
|
|
2012-05-16 01:39:06 -04:00
|
|
|
enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)
|
|
|
|
|
2017-10-25 20:59:15 -04:00
|
|
|
test-bundled-gems-run:
|
|
|
|
$(Q) set -e; while read gem _; do \
|
|
|
|
echo testing $$gem gem && \
|
2017-10-21 09:17:54 -04:00
|
|
|
$(XRUBY) -C $(srcdir)/gems/src/$$gem -Ilib ../../../.bundle/bin/rake; \
|
2017-10-25 20:59:15 -04:00
|
|
|
done < $(srcdir)/gems/bundled_gems
|
2017-10-21 05:50:36 -04:00
|
|
|
|
2016-01-18 21:30:17 -05:00
|
|
|
update-src::
|
2009-03-06 04:37:31 -05:00
|
|
|
@$(CHDIR) "$(srcdir)" && LC_TIME=C exec $(VCSUP)
|
2009-01-16 03:33:02 -05:00
|
|
|
|
2016-01-20 07:00:14 -05:00
|
|
|
update-download:: update-config_files
|
|
|
|
|
2017-04-21 20:18:08 -04:00
|
|
|
after-update:: prereq
|
2013-06-14 01:10:15 -04:00
|
|
|
|
2017-05-20 09:00:41 -04:00
|
|
|
gcov:
|
|
|
|
$(Q) $(BASERUBY) $(srcdir)/tool/run-gcov.rb
|
|
|
|
|
2017-07-04 12:02:19 -04:00
|
|
|
lcov:
|
|
|
|
$(Q) $(BASERUBY) $(srcdir)/tool/run-lcov.rb
|
|
|
|
|
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 10:38:05 -04:00
|
|
|
update-benchmark-driver:
|
|
|
|
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/benchmark $(Q1:0=-q) \
|
|
|
|
--branch $(BENCHMARK_DRIVER_GIT_REF) \
|
|
|
|
$(BENCHMARK_DRIVER_GIT_URL) benchmark-driver $(GIT_OPTS)
|
|
|
|
|
2015-11-09 03:38:20 -05:00
|
|
|
update-doclie:
|
2017-03-30 02:44:27 -04:00
|
|
|
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
|
|
|
--branch $(DOCLIE_GIT_REF) \
|
|
|
|
$(DOCLIE_GIT_URL) doclie $(GIT_OPTS)
|
2015-11-09 03:38:20 -05:00
|
|
|
|
|
|
|
update-simplecov-html:
|
2017-03-30 02:44:27 -04:00
|
|
|
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
|
|
|
--branch $(SIMPLECOV_HTML_GIT_REF) \
|
|
|
|
$(SIMPLECOV_HTML_GIT_URL) simplecov-html $(GIT_OPTS)
|
2015-11-09 03:38:20 -05:00
|
|
|
|
|
|
|
update-simplecov:
|
2017-03-30 02:44:27 -04:00
|
|
|
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
|
|
|
--branch $(SIMPLECOV_GIT_REF) \
|
2017-05-18 01:29:04 -04:00
|
|
|
$(SIMPLECOV_GIT_URL) simplecov $(GIT_OPTS)
|
2014-09-02 03:59:18 -04:00
|
|
|
|
2015-11-09 03:38:20 -05:00
|
|
|
update-coverage: update-simplecov update-simplecov-html update-doclie
|
|
|
|
|
2009-03-06 00:28:42 -05:00
|
|
|
INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \
|
mjit_compile.c: merge initial JIT compiler
which has been developed by Takashi Kokubun <takashikkbn@gmail> as
YARV-MJIT. Many of its bugs are fixed by wanabe <s.wanabe@gmail.com>.
This JIT compiler is designed to be a safe migration path to introduce
JIT compiler to MRI. So this commit does not include any bytecode
changes or dynamic instruction modifications, which are done in original
MJIT.
This commit even strips off some aggressive optimizations from
YARV-MJIT, and thus it's slower than YARV-MJIT too. But it's still
fairly faster than Ruby 2.5 in some benchmarks (attached below).
Note that this JIT compiler passes `make test`, `make test-all`, `make
test-spec` without JIT, and even with JIT. Not only it's perfectly safe
with JIT disabled because it does not replace VM instructions unlike
MJIT, but also with JIT enabled it stably runs Ruby applications
including Rails applications.
I'm expecting this version as just "initial" JIT compiler. I have many
optimization ideas which are skipped for initial merging, and you may
easily replace this JIT compiler with a faster one by just replacing
mjit_compile.c. `mjit_compile` interface is designed for the purpose.
common.mk: update dependencies for mjit_compile.c.
internal.h: declare `rb_vm_insn_addr2insn` for MJIT.
vm.c: exclude some definitions if `-DMJIT_HEADER` is provided to
compiler. This avoids to include some functions which take a long time
to compile, e.g. vm_exec_core. Some of the purpose is achieved in
transform_mjit_header.rb (see `IGNORED_FUNCTIONS`) but others are
manually resolved for now. Load mjit_helper.h for MJIT header.
mjit_helper.h: New. This is a file used only by JIT-ed code. I'll
refactor `mjit_call_cfunc` later.
vm_eval.c: add some #ifdef switches to skip compiling some functions
like Init_vm_eval.
win32/mkexports.rb: export thread/ec functions, which are used by MJIT.
include/ruby/defines.h: add MJIT_FUNC_EXPORTED macro alis to clarify
that a function is exported only for MJIT.
array.c: export a function used by MJIT.
bignum.c: ditto.
class.c: ditto.
compile.c: ditto.
error.c: ditto.
gc.c: ditto.
hash.c: ditto.
iseq.c: ditto.
numeric.c: ditto.
object.c: ditto.
proc.c: ditto.
re.c: ditto.
st.c: ditto.
string.c: ditto.
thread.c: ditto.
variable.c: ditto.
vm_backtrace.c: ditto.
vm_insnhelper.c: ditto.
vm_method.c: ditto.
I would like to improve maintainability of function exports, but I
believe this way is acceptable as initial merging if we clarify the
new exports are for MJIT (so that we can use them as TODO list to fix)
and add unit tests to detect unresolved symbols.
I'll add unit tests of JIT compilations in succeeding commits.
Author: Takashi Kokubun <takashikkbn@gmail.com>
Contributor: wanabe <s.wanabe@gmail.com>
Part of [Feature #14235]
---
* Known issues
* Code generated by gcc is faster than clang. The benchmark may be worse
in macOS. Following benchmark result is provided by gcc w/ Linux.
* Performance is decreased when Google Chrome is running
* JIT can work on MinGW, but it doesn't improve performance at least
in short running benchmark.
* Currently it doesn't perform well with Rails. We'll try to fix this
before release.
---
* Benchmark reslts
Benchmarked with:
Intel 4.0GHz i7-4790K with 16GB memory under x86-64 Ubuntu 8 Cores
- 2.0.0-p0: Ruby 2.0.0-p0
- r62186: Ruby trunk (early 2.6.0), before MJIT changes
- JIT off: On this commit, but without `--jit` option
- JIT on: On this commit, and with `--jit` option
** Optcarrot fps
Benchmark: https://github.com/mame/optcarrot
| |2.0.0-p0 |r62186 |JIT off |JIT on |
|:--------|:--------|:--------|:--------|:--------|
|fps |37.32 |51.46 |51.31 |58.88 |
|vs 2.0.0 |1.00x |1.38x |1.37x |1.58x |
** MJIT benchmarks
Benchmark: https://github.com/benchmark-driver/mjit-benchmarks
(Original: https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch/MJIT-benchmarks)
| |2.0.0-p0 |r62186 |JIT off |JIT on |
|:----------|:--------|:--------|:--------|:--------|
|aread |1.00 |1.09 |1.07 |2.19 |
|aref |1.00 |1.13 |1.11 |2.22 |
|aset |1.00 |1.50 |1.45 |2.64 |
|awrite |1.00 |1.17 |1.13 |2.20 |
|call |1.00 |1.29 |1.26 |2.02 |
|const2 |1.00 |1.10 |1.10 |2.19 |
|const |1.00 |1.11 |1.10 |2.19 |
|fannk |1.00 |1.04 |1.02 |1.00 |
|fib |1.00 |1.32 |1.31 |1.84 |
|ivread |1.00 |1.13 |1.12 |2.43 |
|ivwrite |1.00 |1.23 |1.21 |2.40 |
|mandelbrot |1.00 |1.13 |1.16 |1.28 |
|meteor |1.00 |2.97 |2.92 |3.17 |
|nbody |1.00 |1.17 |1.15 |1.49 |
|nest-ntimes|1.00 |1.22 |1.20 |1.39 |
|nest-while |1.00 |1.10 |1.10 |1.37 |
|norm |1.00 |1.18 |1.16 |1.24 |
|nsvb |1.00 |1.16 |1.16 |1.17 |
|red-black |1.00 |1.02 |0.99 |1.12 |
|sieve |1.00 |1.30 |1.28 |1.62 |
|trees |1.00 |1.14 |1.13 |1.19 |
|while |1.00 |1.12 |1.11 |2.41 |
** Discourse's script/bench.rb
Benchmark: https://github.com/discourse/discourse/blob/v1.8.7/script/bench.rb
NOTE: Rails performance was somehow a little degraded with JIT for now.
We should fix this.
(At least I know opt_aref is performing badly in JIT and I have an idea
to fix it. Please wait for the fix.)
*** JIT off
Your Results: (note for timings- percentile is first, duration is second in millisecs)
categories_admin:
50: 17
75: 18
90: 22
99: 29
home_admin:
50: 21
75: 21
90: 27
99: 40
topic_admin:
50: 17
75: 18
90: 22
99: 32
categories:
50: 35
75: 41
90: 43
99: 77
home:
50: 39
75: 46
90: 49
99: 95
topic:
50: 46
75: 52
90: 56
99: 101
*** JIT on
Your Results: (note for timings- percentile is first, duration is second in millisecs)
categories_admin:
50: 19
75: 21
90: 25
99: 33
home_admin:
50: 24
75: 26
90: 30
99: 35
topic_admin:
50: 19
75: 20
90: 25
99: 30
categories:
50: 40
75: 44
90: 48
99: 76
home:
50: 42
75: 48
90: 51
99: 89
topic:
50: 49
75: 55
90: 58
99: 99
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04 06:22:28 -05:00
|
|
|
vmtc.inc vm.inc mjit_compile.inc
|
2009-03-06 00:28:42 -05:00
|
|
|
|
2009-09-21 15:43:43 -04:00
|
|
|
$(INSNS): $(srcdir)/insns.def vm_opts.h \
|
|
|
|
$(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \
|
2018-01-12 03:38:09 -05:00
|
|
|
$(srcdir)/tool/insns2vm.rb
|
2011-07-31 10:17:37 -04:00
|
|
|
$(ECHO) generating $@
|
2011-09-05 06:36:24 -04:00
|
|
|
$(Q) $(BASERUBY) -Ku $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@
|
2013-05-16 03:54:04 -04:00
|
|
|
|
2014-12-01 03:20:45 -05:00
|
|
|
verconf.h: $(RBCONFIG)
|
|
|
|
|
2013-05-16 03: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 05:12:44 -04:00
|
|
|
|
|
|
|
un-runnable:
|
|
|
|
$(ECHO) cannot make runnable, configure with --enable-load-relative.
|
|
|
|
$(Q) exit 1
|
2018-02-10 01:22:38 -05:00
|
|
|
|
|
|
|
mjit_config.h:
|
|
|
|
$(ECHO) making $@
|
|
|
|
@{ \
|
2018-02-19 20:23:23 -05:00
|
|
|
quote() { \
|
|
|
|
printf "#define $$1"; shift; \
|
2018-02-26 03:37:02 -05:00
|
|
|
$${1+printf} $${1+' "%s"'$$sep} $${1+"$$@"}; \
|
2018-02-19 20:23:23 -05:00
|
|
|
echo; \
|
|
|
|
}; \
|
2018-07-02 09:50:53 -04:00
|
|
|
parse_arch_flag() { \
|
|
|
|
while [ "$$#" -gt 0 ]; do \
|
|
|
|
case "$$1" in \
|
|
|
|
-arch) \
|
|
|
|
shift; \
|
|
|
|
archs="$${archs:+$$archs }$$1"; \
|
|
|
|
shift; \
|
|
|
|
;; \
|
|
|
|
*) \
|
|
|
|
arch_flag="$${arch_flag:+$${arch_flag} }$$1"; \
|
|
|
|
shift; \
|
|
|
|
;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
|
|
|
}; \
|
2018-02-15 06:16:51 -05:00
|
|
|
test "$(Q)" = @ || set -x; \
|
2018-07-02 09:50:53 -04:00
|
|
|
archs="$(UNIVERSAL_ARCHNAMES)"; \
|
|
|
|
arch_flag=""; \
|
|
|
|
parse_arch_flag $(ARCH_FLAG); \
|
|
|
|
need_mjit_archflag="$${archs}$${arch_flag}"; \
|
2018-02-10 01:22:38 -05:00
|
|
|
echo '#ifndef RUBY_MJIT_CONFIG_H'; \
|
|
|
|
echo '#define RUBY_MJIT_CONFIG_H 1'; \
|
2018-02-11 07:50:23 -05:00
|
|
|
echo; \
|
2018-02-19 21:37:28 -05:00
|
|
|
sep=; \
|
2018-07-31 11:02:31 -04:00
|
|
|
quote MJIT_BUILD_DIR "`$(CHDIR) . && pwd`"; \
|
2018-04-27 21:45:52 -04:00
|
|
|
quote MJIT_MIN_HEADER_NAME "/$(MJIT_HEADER_INSTALL_DIR)/$(MJIT_MIN_HEADER_NAME)"; \
|
2018-02-19 20:23:23 -05:00
|
|
|
sep=,; \
|
2018-03-01 17:49:26 -05:00
|
|
|
quote "MJIT_CC_COMMON " $(MJIT_CC); \
|
2018-07-02 09:50:53 -04:00
|
|
|
quote "MJIT_CFLAGS $${need_mjit_archflag:+ MJIT_ARCHFLAG}" -w; \
|
2018-03-01 17:49:26 -05:00
|
|
|
quote "MJIT_OPTFLAGS " $(MJIT_OPTFLAGS); \
|
|
|
|
quote "MJIT_DEBUGFLAGS " $(MJIT_DEBUGFLAGS); \
|
2018-03-03 00:09:32 -05:00
|
|
|
quote "MJIT_LDSHARED " $(MJIT_LDSHARED); \
|
2018-07-02 09:50:53 -04:00
|
|
|
quote "MJIT_DLDFLAGS $${need_mjit_archflag:+ MJIT_ARCHFLAG}" $(MJIT_DLDFLAGS); \
|
2018-02-19 21:37:28 -05:00
|
|
|
quote "MJIT_LIBS " $(LIBRUBYARG_SHARED); \
|
2018-04-21 20:02:56 -04:00
|
|
|
$${archs:+echo} $${archs:+'#if 0'}; \
|
|
|
|
for arch in $$archs; do \
|
|
|
|
echo "#elif defined __$${arch%=*}__"; \
|
|
|
|
quote " MJIT_ARCHFLAG " -arch $${arch%=*}; \
|
|
|
|
done; \
|
2018-07-02 09:50:53 -04:00
|
|
|
$${archs:+echo} $${archs:+'#else'}; \
|
|
|
|
if [ "$${arch_flag}" != "" ]; then \
|
|
|
|
quote " MJIT_ARCHFLAG " $${arch_flag}; \
|
|
|
|
fi; \
|
2018-04-21 20:02:56 -04:00
|
|
|
$${archs:+echo} $${archs:+'#endif'}; \
|
2018-02-11 07:50:23 -05:00
|
|
|
echo; \
|
2018-02-10 01:22:38 -05:00
|
|
|
echo '#endif /* RUBY_MJIT_CONFIG_H */'; \
|
|
|
|
} > $@
|