diff options
author | Ying Wang <wangying@google.com> | 2010-06-16 11:53:52 -0700 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2010-06-16 14:57:20 -0700 |
commit | 212bd3e547d4720784d82900ec843b104f65e0d9 (patch) | |
tree | b9d69a546d97a7ed1a85161f06dbedd76e0c95e5 | |
parent | 4c6c6f56ec399911c3722c4eb06b346905a57b02 (diff) | |
download | genext2fs-212bd3e547d4720784d82900ec843b104f65e0d9.tar.gz |
Split commands out of Config.mk
So that we can call the commands in release tools (in Python) later.
The function definition in Config.mk is moved to build/core/Makefile.
Change-Id: I23b9780fd4dac6a7f34ebf8837e2fa839e4bbf30
-rw-r--r-- | Android.mk | 16 | ||||
-rw-r--r-- | Config.mk | 23 | ||||
-rwxr-xr-x | mkuserimg.sh | 105 |
3 files changed, 121 insertions, 23 deletions
@@ -1,6 +1,8 @@ # Copyright 2008 The Android Open Source Project LOCAL_PATH:= $(call my-dir) + +################################ include $(CLEAR_VARS) LOCAL_SRC_FILES := \ @@ -12,3 +14,17 @@ LOCAL_MODULE := genext2fs include $(BUILD_HOST_EXECUTABLE) +################################ +include $(CLEAR_VARS) + +LOCAL_MODULE := mkuserimg.sh +LOCAL_SRC_FILES := mkuserimg.sh +LOCAL_MODULE_CLASS := EXECUTABLES +# We don't need any additional suffix. +LOCAL_MODULE_SUFFIX := +LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES)) +LOCAL_IS_HOST_MODULE := true + +include $(BUILD_PREBUILT) + +################################ diff --git a/Config.mk b/Config.mk deleted file mode 100644 index 15be744..0000000 --- a/Config.mk +++ /dev/null @@ -1,23 +0,0 @@ -# $(1): src directory -# $(2): output file -# $(3): label (if any) -# $(4): ext variant (ext2, ext3, ext4) -comma := , - -define build-userimage-ext-target - @mkdir -p $(dir $(2)) - $(hide) num_blocks=`du -sk $(1) | tail -n1 | awk '{print $$1;}'`;\ - if [ $$num_blocks -lt 20480 ]; then extra_blocks=3072; \ - else extra_blocks=20480; fi ; \ - num_blocks=`expr $$num_blocks + $$extra_blocks` ; \ - num_inodes=`find $(1) | wc -l` ; num_inodes=`expr $$num_inodes + 500`; \ - $(MKEXT2IMG) -a -d $(1) -b $$num_blocks -N $$num_inodes -m 0 $(2) - $(if $(strip $(3)),\ - $(hide) $(TUNE2FS) -L $(strip $(3)) $(2)) - $(if $(filter ext3,$(4)), \ - $(hide) $(TUNE2FS) -j $(2)) - $(if $(filter ext4,$(4)), \ - $(hide) $(TUNE2FS) -j -O extents$(comma)uninit_bg$(comma)dir_index $(2)) - $(hide) $(TUNE2FS) -C 1 $(2) - $(hide) $(E2FSCK) -fy $(2) ; [ $$? -lt 4 ] -endef diff --git a/mkuserimg.sh b/mkuserimg.sh new file mode 100755 index 0000000..c0efdb8 --- /dev/null +++ b/mkuserimg.sh @@ -0,0 +1,105 @@ +#!/bin/bash +# + +function usage() { +cat<<EOT +Usage: +mkuserimg.sh MKEXT2IMG TUNE2FS E2FSCK SRC_DIR OUTPUT_FILE EXT_VARIANT [LABEL] +EOT +} + +if [ $# -ne 6 -a $# -ne 7 ]; then + usage + exit 1 +fi + +MKEXT2IMG=$1 +if [ ! -x $MKEXT2IMG -o ! -f $MKEXT2IMG ]; then + echo "Can not find executable $MKEXT2IMG!" + exit 2 +fi + +TUNE2FS=$2 +if [ ! -x $TUNE2FS -o ! -f $TUNE2FS ]; then + echo "Can not find executable $TUNE2FS!" + exit 3 +fi + +E2FSCK=$3 +if [ ! -x $E2FSCK -o ! -f $E2FSCK ]; then + echo "Can not find executable $E2FSCK!" + exit 4 +fi + +SRC_DIR=$4 +if [ ! -d $SRC_DIR ]; then + echo "Can not find directory $SRC_DIR!" + exit 5 +fi + +OUTPUT_FILE=$5 +EXT_VARIANT=$6 +LABEL=$7 + +case $EXT_VARIANT in + ext2) ;; + ext3) ;; + ext4) ;; + *) echo "Only ext2, ext3, ext4 are supported!"; exit 6 ;; +esac + +num_blocks=`du -sk $SRC_DIR | tail -n1 | awk '{print $1;}'` +if [ $num_blocks -lt 20480 ]; then + extra_blocks=3072 +else + extra_blocks=20480 +fi +num_blocks=`expr $num_blocks + $extra_blocks` +num_inodes=`find $SRC_DIR | wc -l` +num_inodes=`expr $num_inodes + 500` + +echo "num_blocks=$num_blocks" +echo "num_inodes=$num_inodes" + +echo "$MKEXT2IMG -a -d $SRC_DIR -b $num_blocks -N $num_inodes -m 0 $OUTPUT_FILE" +$MKEXT2IMG -a -d $SRC_DIR -b $num_blocks -N $num_inodes -m 0 $OUTPUT_FILE +if [ $? -ne 0 ]; then + exit 7 +fi + +if [ -n $LABEL ]; then + echo "$TUNE2FS -L $LABEL $OUTPUT_FILE" + $TUNE2FS -L $LABEL $OUTPUT_FILE + if [ $? -ne 0 ]; then + exit 8 + fi +fi + +if [ $EXT_VARIANT = "ext3" ]; then + echo "$TUNE2FS -j $OUTPUT_FILE" + $TUNE2FS -j $OUTPUT_FILE + if [ $? -ne 0 ]; then + exit 9 + fi +elif [ $EXT_VARIANT = "ext4" ]; then + echo "$TUNE2FS -j -O extents,uninit_bg,dir_index $OUTPUT_FILE" + $TUNE2FS -j -O extents,uninit_bg,dir_index $OUTPUT_FILE + if [ $? -ne 0 ]; then + exit 10 + fi +fi + +echo "$TUNE2FS -C 1 $OUTPUT_FILE" +$TUNE2FS -C 1 $OUTPUT_FILE +if [ $? -ne 0 ]; then + exit 11 +fi + +echo "$E2FSCK -fy $OUTPUT_FILE" +$E2FSCK -fy $OUTPUT_FILE +if [ $? -ge 4 ]; then + echo "$E2FSCK returns value $?, no less than 4!" + exit 12 +else + exit 0 +fi |