From e5a3f232563139fdf15660d54aeaec112ffc2349 Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Fri, 29 Jul 2022 13:54:27 -0400 Subject: Use $(bindir) for path to executable in mkmf For the macOS -bundle_loader linker option, we need a path to the Ruby exectuable. $(RUBY) is not necessarily a path since it could be a command line invocation. That happens during build with runruby.rb and can happen post installation if the user passes the --ruby option to a extconf.rb. Use $(bindir) to locate the executable instead. Before installation, $(bindir) doesn't exist, so we need to be able to override $(BUILTRUBY) in such situations so test-spec and bundled extensions could build. Use a new mkmf global, $builtruby, to do this; set it in fake.rb and in extmk.rb. Our build system is quite complex... --- ext/extmk.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/extmk.rb') diff --git a/ext/extmk.rb b/ext/extmk.rb index 70067d28b8..b0d84ef00f 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -417,7 +417,6 @@ elsif CONFIG['EXTSTATIC'] else $ruby = '$(topdir)/ruby' + EXEEXT end -$mflags << "BUILTRUBY=#$ruby" $ruby = [$ruby] $ruby << "-I'$(topdir)'" unless CROSS_COMPILING @@ -428,6 +427,7 @@ end topruby = $ruby $ruby = topruby.join(' ') $mflags << "ruby=#$ruby" +$builtruby = '$(topdir)/ruby' + EXEEXT # Must be an executable path MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)} -- cgit v1.2.1