On ARM, we need output geometry same as screen size instead of 800x600 and use 8bpp RLE format to encoding BMP.

Also make the script able to run at other directory.

BUG=chromium-os:11384
TEST=as follow:
$ cd /tmp
$ ~/$CHROMEOS/src/platform/vboot_reference/scripts/bitmaps/make_bmp_images.sh 'x86 HWID 1234' '1366x768' true
processing BlankBmp ...
processing DeveloperBmp ...
processing RecoveryBmp ...
processing RecoveryMissingOSBmp ...
processing RecoveryNoOSBmp ...
$ file out_x86_HWID_1234/DeveloperBmp/DeveloperBmp.bmp
out_x86_HWID_1234/DeveloperBmp/DeveloperBmp.bmp: PC bitmap, Windows 3.x format, 800 x 600 x 24
$ ~/$CHROMEOS/src/platform/vboot_reference/scripts/bitmaps/make_bmp_images.sh 'arm HWID 1234' '1366x768' false
processing BlankBmp ...
processing DeveloperBmp ...
processing RecoveryBmp ...
processing RecoveryMissingOSBmp ...
processing RecoveryNoOSBmp ...
$ file out_arm_HWID_1234/DeveloperBmp/DeveloperBmp.bmp out_arm_HWID_1234/DeveloperBmp/DeveloperBmp.bmp: PC bitmap, Windows 3.x format, 1366 x 768 x 8

Change-Id: Ia96a4e64f34350f8bd5fec51657d3cec85c4ab1c

Review URL: http://codereview.chromium.org/6273012
diff --git a/scripts/bitmaps/make_bmp_images.sh b/scripts/bitmaps/make_bmp_images.sh
index c944fa0..d69c10e 100755
--- a/scripts/bitmaps/make_bmp_images.sh
+++ b/scripts/bitmaps/make_bmp_images.sh
@@ -6,30 +6,35 @@
 # This adds text to our non-labeled recovery images.
 #
 # The source images should be 1366x800, with the expectation they'll be cropped
-# to 1366x768 or 1280x800, have 2 lines of text overlayed at the bottom, and
-# then be resized to 800x600 so that the BIOS can then display them stretched
-# to the full screen size.
+# to <screen geometry>, which is 1366x768 or 1280x800, have 2 lines of text
+# overlayed at the bottom, and then be resized to 800x600 if on x86, otherwise
+# same as <screen geometry>. On x86, resizing to 800x600 because the BIOS can
+# then display them stretched to the full screen size.
 #
 
 
-
-
-# Require one arg
-if [ $# -ne "2" ]; then
-  echo "Usage: $(basename $0) <MODEL> <screen geometry>" 1>&2
+# Require three args
+if [ $# -ne "3" -o \( "$3" != "x86" -a "$3" != "arm" \) ]; then
+  echo "Usage: $(basename $0) <HWID> <screen geometry> <x86/arm>" 1>&2
   exit 1
 fi
-MODEL=$1
+HWID=$1
 geom_crop=$2
+geom_final='800x600!'
+flag_final=
+# If arm, make the final geometry as screen size and use 8bpp rle format.
+if [ $3 = "arm" ]; then
+  geom_final=$2
+  flag_final="-colors 256 -compress rle"
+fi
 
-nicename=${MODEL// /_}
+nicename=${HWID// /_}
 
 # Default URL
 URL='http://google.com/chromeos/recovery'
 
 # Image parameters
 geom_orig='1366x800'
-geom_final='800x600!'
 bluecolor='#9ccaec'
 bluefont="Helvetica-Narrow"
 bluepointsize=30
@@ -48,7 +53,7 @@
 
 # Output directories
 thisdir=$(readlink -e $(dirname $0))
-outdir="${thisdir}/out_${nicename}"
+outdir="out_${nicename}"
 [ -d "$outdir" ] || mkdir -p "$outdir"
 
 function find_background_color {
@@ -84,7 +89,7 @@
     # The only way to change font and color in multiline text is to split each
     # line into a separate image and then composite them together. Ugh.
     # First, split each input line into a separate file.
-    "${thisdir}/makelines" -u "$URL" -m "$MODEL" -d "$tmpdir" "$txt_file"
+    "${thisdir}/makelines.sh" -u "$URL" -m "$HWID" -d "$tmpdir" "$txt_file"
     # Convert each line file into an image file.
     for txtfile in ${tmpdir}/linetxt_*; do
       case "$txtfile" in
@@ -114,12 +119,12 @@
   fi
 
   # Now scale the result to the final size
-  convert "$img_txt" -scale "$geom_final" -alpha off "$dst_img"
+  convert "$img_txt" -scale "$geom_final" -alpha off $flag_final "$dst_img"
 }
 
 
 # Do it.
-for file in originals/*.gif; do
+for file in ${thisdir}/originals/*.gif; do
   process_one_file "$file"
 done
 
diff --git a/scripts/bitmaps/makelines b/scripts/bitmaps/makelines.sh
similarity index 100%
rename from scripts/bitmaps/makelines
rename to scripts/bitmaps/makelines.sh
diff --git a/scripts/bitmaps/process_all_targets.sh b/scripts/bitmaps/process_all_targets.sh
index 851a524..a290053 100755
--- a/scripts/bitmaps/process_all_targets.sh
+++ b/scripts/bitmaps/process_all_targets.sh
@@ -63,6 +63,6 @@
       continue
     ;;
   esac
-  ./make_bmp_images.sh "${elements} ${signature}" "${geometry}"
+  ./make_bmp_images.sh "${elements} ${signature}" "${geometry}" "x86"
   echo
 done