@@ -32,7 +32,7 @@ def build(crossruby)
32
32
objdir = product_build_dir crossruby
33
33
FileUtils . mkdir_p objdir
34
34
do_extconf crossruby
35
- FileUtils . sh %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } #{ lib } .a)
35
+ system %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } #{ lib } .a)
36
36
# A ext can provide link args by link.filelist. It contains only built archive file by default.
37
37
unless File . exist? ( linklist ( crossruby ) )
38
38
File . write ( linklist ( crossruby ) , Dir . glob ( "#{ objdir } /*.a" ) . join ( "\n " ) )
@@ -63,14 +63,14 @@ def do_extconf(crossruby)
63
63
"-I#{ crossruby . build_dir } "
64
64
]
65
65
# Clear RUBYOPT to avoid loading unrelated bundle setup
66
- FileUtils . sh ( { "RUBYOPT" => "" } ) ,
66
+ system ( { "RUBYOPT" => "" } ) ,
67
67
"#{ crossruby . baseruby_path } #{ extconf_args . join ( " " ) } " ,
68
68
chdir : objdir
69
69
end
70
70
71
71
def do_install_rb ( crossruby )
72
72
objdir = product_build_dir crossruby
73
- FileUtils . sh %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } install-rb)
73
+ system %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } install-rb)
74
74
end
75
75
end
76
76
@@ -115,36 +115,37 @@ def initialize(
115
115
def configure ( reconfigure : false )
116
116
if !File . exist? ( "#{ build_dir } /Makefile" ) || reconfigure
117
117
args = configure_args ( RbConfig ::CONFIG [ "host" ] , toolchain )
118
- FileUtils . sh "#{ source . configure_file } #{ args . join ( " " ) } " ,
118
+ system "#{ source . configure_file } #{ args . join ( " " ) } " ,
119
119
chdir : build_dir
120
120
end
121
121
# NOTE: we need rbconfig.rb at configuration time to build user given extensions with mkmf
122
- FileUtils . sh "make rbconfig.rb" , chdir : build_dir
122
+ system "make rbconfig.rb" , chdir : build_dir
123
123
end
124
124
125
125
def build_exts
126
126
@user_exts . each { |prod | prod . build ( self ) }
127
127
mkdir_p File . dirname ( extinit_obj )
128
- FileUtils . sh %Q(ruby #{ extinit_c_erb } #{ @user_exts . map ( &:name ) . join ( " " ) } | #{ toolchain . cc } -c -x c - -o #{ extinit_obj } )
128
+ system %Q(ruby #{ extinit_c_erb } #{ @user_exts . map ( &:name ) . join ( " " ) } | #{ toolchain . cc } -c -x c - -o #{ extinit_obj } )
129
129
end
130
130
131
131
def build ( remake : false , reconfigure : false )
132
132
FileUtils . mkdir_p dest_dir
133
133
FileUtils . mkdir_p build_dir
134
134
Rake ::Task [ source . configure_file ] . invoke
135
+ @baseruby . build
135
136
dep_tasks . each ( &:invoke )
136
137
configure ( reconfigure : reconfigure )
137
138
build_exts
138
139
139
140
install_dir = File . join ( build_dir , "install" )
140
141
if !File . exist? ( install_dir ) || remake || reconfigure
141
- FileUtils . sh "make install DESTDIR=#{ install_dir } " , chdir : build_dir
142
+ system "make install DESTDIR=#{ install_dir } " , chdir : build_dir
142
143
end
143
144
144
145
FileUtils . rm_rf dest_dir
145
146
FileUtils . cp_r install_dir , dest_dir
146
147
@user_exts . each { |ext | ext . do_install_rb ( self ) }
147
- FileUtils . sh "tar cfz #{ artifact } -C rubies #{ name } "
148
+ system "tar cfz #{ artifact } -C rubies #{ name } "
148
149
end
149
150
150
151
def name
@@ -200,7 +201,7 @@ def baseruby_path
200
201
end
201
202
202
203
def dep_tasks
203
- [ @baseruby . install_task , @ toolchain. install_task ] + @dep_tasks
204
+ [ @toolchain . install_task ] + @dep_tasks
204
205
end
205
206
206
207
def configure_args ( build_triple , toolchain )
0 commit comments