Skip to content

Commit a0ca497

Browse files
committed
build ruby for different platforms
1 parent 302e87b commit a0ca497

1 file changed

Lines changed: 49 additions & 51 deletions

File tree

build.sh

Lines changed: 49 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,6 @@ die() {
1717
exit 1
1818
}
1919

20-
create_archive_metadata() {
21-
md5=$(md5sum "$1" 2>&3 | grep -oE "[0-9a-f]{32}")
22-
test -n "${md5}" || die
23-
sha1=$(sha1sum "$1" 2>&3 | grep -oE "[0-9a-f]{40}")
24-
test -n "${sha1}" || die
25-
filename=$(basename "$1")
26-
cat > "$2" 2>&3 <<EOF
27-
{
28-
"url" : "${UPDATE_SERVER}${filename}",
29-
"name" : "${filename}",
30-
"version" : $3,
31-
"archiver" : "$4",
32-
"compression" : "$5",
33-
"platform" : "android${api}.${abi}",
34-
"md5" : "${md5}",
35-
"sha1" : "${sha1}"
36-
}
37-
EOF
38-
}
39-
4020
test -d "${oldpwd}" || die
4121

4222
exec 3> build.log
@@ -101,9 +81,11 @@ check_ndk() {
10181
}
10282

10383
delete_core_packages() {
104-
for f in ../dist/core* ; do
105-
rm "$f"
106-
done
84+
find ../dist/ -name "core*" -type f -exec rm "{}" \;
85+
}
86+
87+
delete_ruby_packages() {
88+
find ../dist/ -name "ruby*" -type f -exec rm "{}" \;
10789
}
10890

10991
build_core() {
@@ -252,15 +234,10 @@ pack_core() {
252234

253235
mv /tmp/core.tar.xz $core_path >&3 2>&1 || die
254236

255-
echo -ne "ok\n[core] - creating archive manifest..."
256-
257-
create_archive_metadata $core_path $core_json $CORE_VERSION tar xz
258-
259237
echo "ok"
260238
}
261239

262240
build_cores() {
263-
264241
check_ndk
265242
delete_core_packages
266243

@@ -272,69 +249,94 @@ build_cores() {
272249
done
273250
}
274251

252+
build_ruby() {
253+
check_ndk
254+
delete_ruby_packages
255+
256+
for api in $apis; do
257+
build_core
258+
for abi in $abis; do
259+
pack_ruby
260+
done
261+
done
262+
}
263+
275264
build_jni() {
276265
check_ndk
277266
select_lower_api
278267

279268
build_jni_libs
280269
}
281270

282-
283-
build_ruby() {
284-
echo -e "*** creating ruby package ***"
285-
271+
pack_ruby() {
286272
system_ruby=""
287-
273+
274+
echo
275+
echo "[ruby] building android${api}.${abi} package"
276+
288277
for bin in ruby ruby19; do
289278
bin=$(which "$bin")
290-
test -n "$bin" && grep -q "1.9" <<<$($bin -v) && system_ruby="${bin}"
279+
280+
test -n "$bin" && { $bin -v | grep -q "1.9" ;} && system_ruby="${bin}"
291281
done
292282

293283
test -n "${system_ruby}" || { echo "ruby 1.9 not found" >&2; echo "ruby 1.9 not found" >&3; die ;}
294284

295-
echo -n "creating rubyroot..."
285+
echo -n "[ruby] - creating root..."
296286

297287
rm -rf rubyroot >&3 2>&1 || die
298288
rubyroot=$(readlink -f rubyroot) || die
299289
echo "rubyroot='${rubyroot}'" >&3
300290
test -n "${rubyroot}" || die
291+
301292
for d in $directories; do
302293
echo "making \`${rubyroot}/lib/ruby/1.9.1/arm-linux-androideabi$d'" >&3
303294
mkdir -p "${rubyroot}/lib/ruby/1.9.1/arm-linux-androideabi$d" >&3 2>&1 || die
304295
done
296+
305297
mkdir -p "${rubyroot}/lib/ruby/site_ruby/1.9.1/arm-linux-androideabi" || die
306298
mkdir -p "${rubyroot}/lib/ruby/vendor_ruby/1.9.1/arm-linux-androideabi" || die
307299
mkdir -p "${rubyroot}/bin" >&3 2>&1 || die
308300
mkdir -p "${rubyroot}/etc" >&3 2>&1 || die
309301
mkdir -p "${rubyroot}/home/ruby" >&3 2>&1 || die
310-
echo -ne "ok\ndisabling documentation install for gems..."
302+
303+
echo -ne "ok\n[ruby] - disabling documentation when installing gems..."
304+
311305
echo -e 'install: --no-document\nupdate: --no-document' > "${rubyroot}/etc/gemrc" 2>&3 || die
312306
cp "${rubyroot}/etc/gemrc" "${rubyroot}/home/ruby/.gemrc" || die
313-
echo -ne "ok\ncopying binaries..."
307+
308+
echo -ne "ok\n[ruby] - copying binaries..."
309+
314310
rsync -va ruby/bin/ rubyroot/bin/ >&3 2>&1 || die
315311
for prog in clear infocmp tabs tic toe tput; do
316-
cp "../libs/armeabi/${prog}" "${rubyroot}/bin/" >&3 2>&1 || die
312+
cp "../libs/${abi}/${prog}" "${rubyroot}/bin/" >&3 2>&1 || die
317313
done
318-
cp ../libs/armeabi/ruby "${rubyroot}/bin/" >&3 2>&1 || die
319-
echo -ne "ok\ncopying libraries..."
314+
cp "../libs/${abi}/ruby" "${rubyroot}/bin/" >&3 2>&1 || die
315+
316+
echo -ne "ok\n[ruby] - copying libraries..."
317+
320318
for d in $directories; do
321319
base="libRUBY${d//\//_}"
322320
search_name="${base}*.so"
323321
dest="${oldpwd}/rubyroot/lib/ruby/1.9.1/arm-linux-androideabi$d"
324-
find "${oldpwd}/../libs/armeabi/" -name "${search_name}" | while read file; do
322+
find "${oldpwd}/../libs/${abi}/" -name "${search_name}" | while read file; do
325323
newname=$(basename "$file")
326324
newname=${newname/$base/}
327325
echo "copying \`${file}' to \`${dest}${newname}'" >&3
328326
cp "$file" "${dest}${newname}" >&3 2>&1|| die
329327
done
330328
done
331-
echo -ne "ok\ncopying script libraries..."
329+
330+
echo -ne "ok\n[ruby] - copying script libraries..."
331+
332332
cd ruby/lib >&3 2>&1 || die
333333
( find . -name "*.rb" -print0 | rsync -va --files-from=- --from0 ./ ../../rubyroot/lib/ruby/1.9.1/ ) >&3 2>&1 || die
334334
cd ../.ext/common >&3 2>&1 || die
335335
( find . -name "*.rb" -print0 | rsync -va --files-from=- --from0 ./ ../../../rubyroot/lib/ruby/1.9.1/ ) >&3 2>&1 || die
336336
cp "${oldpwd}/ruby/rbconfig.rb" "${rubyroot}/lib/ruby/1.9.1/arm-linux-androideabi/" >&3 2>&1 || die
337-
echo -ne "ok\nupdating rubygems..."
337+
338+
echo -ne "ok\n[ruby] - updating rubygems..."
339+
338340
echo -e "require 'arm-linux-androideabi/rbconfig'" > "${rubyroot}/lib/ruby/1.9.1/rbconfig.rb" 2>&3 || die
339341
unset RUBYOPT
340342
export RUBYLIB="${rubyroot}/lib/ruby/site_ruby/1.9.1:${rubyroot}/lib/ruby/site_ruby:${rubyroot}/lib/ruby/vendor_ruby/1.9.1:${rubyroot}/lib/ruby/vendor_ruby:${rubyroot}/lib/ruby/1.9.1"
@@ -350,19 +352,15 @@ build_ruby() {
350352
mv "${rubyroot}/bin/ruby.arm" "${rubyroot}/bin/ruby" >&3 2>&1 || die
351353
cd "${rubyroot}"
352354
sed -i "1s,^#!${rubyroot}/bin/ruby,#!/usr/bin/env ruby," $(find . -type f) >&3 2>&1 || die
353-
echo -ne "ok\ncreating archive..."
355+
356+
echo -ne "ok\n[ruby] - creating archive..."
357+
354358
cd "${oldpwd}"
355-
356359
mkdir -p ../dist >&3 2>&1 || die
357-
358360
cd rubyroot
359-
tar -cJf ../../dist/ruby.tar.xz . >&3 2>&1 || die
361+
tar -cJf "../../dist/ruby-${RUBY_VERSION}+android${api}.${abi}.tar.xz" . >&3 2>&1 || die
360362
cd "${oldpwd}"
361363
rm -rf rubyroot
362-
363-
echo -ne "ok\ncreating archive manifest..."
364-
365-
create_archive_metadata ../dist/ruby.tar.xz ../dist/ruby.json $RUBY_VERSION tar xz
366364

367365
echo "ok"
368366
}

0 commit comments

Comments
 (0)