@@ -9,8 +9,6 @@ QEMU_VERSION=`node -p "require('./package.json').version"`
99
1010QEMU_URL=http://wiki.qemu-project.org/download/qemu-$QEMU_VERSION .tar.bz2
1111
12- SRC_DIR=` pwd` /deps/qemu
13-
1412
1513if [[ -z $JOBS ]]; then
1614 JOBS=$(( `getconf _NPROCESSORS_ONLN` + 1 ))
2220case $MACHINE in
2321 i[345678]86)
2422 ARCH=ia32
25- CC=" $CC -m32"
23+ # CC="cc -m32"
24+ # CXX="cpp -m32"
2625 ;;
2726
2827 x86_64)
2928 ARCH=x64
30- CC=" $CC -m64"
29+ # CC="cc -m64"
30+ # CXX="cpp -m64"
3131 ;;
3232
3333 * )
@@ -53,38 +53,55 @@ case $OS in
5353esac
5454
5555
56+ function rmStep(){
57+ rm -rf $1
58+ rmdir -p --ignore-fail-on-non-empty ` dirname $1 `
59+ }
60+
5661# Clean object dir and return the input error
5762function err(){
58- rm -rf $OBJ_DIR
59- rmdir -p --ignore-fail-on-non-empty ` dirname $OBJ_DIR `
63+ rmStep $STEP_DIR
6064 exit $1
6165}
6266
6367
68+ #
69+ # Define steps paths
70+ #
71+
72+ SRC_DIR=` pwd` /deps/qemu
73+ OBJ_DIR=` pwd` /build/$MACHINE
74+ OUT_DIR=` pwd`
75+ PREBUILD=` pwd` /prebuilds/$PLATFORM -$ARCH .tar.gz
76+
77+
6478#
6579# Download QEmu
6680#
6781
68- OBJ_DIR=$SRC_DIR
82+ STEP_DIR=$SRC_DIR
83+
84+ if [[ ! -d $STEP_DIR ]]; then
85+ mkdir -p $STEP_DIR || exit 3
6986
70- if [[ ! -d $OBJ_DIR ]]; then
71- mkdir -p $OBJ_DIR || exit 3
87+ rmStep $OBJ_DIR
7288
73- curl $QEMU_URL | tar -xj --strip-components=1 -C $OBJ_DIR || err 4
89+ curl $QEMU_URL | tar -xj --strip-components=1 -C $STEP_DIR || err 4
7490fi
7591
7692
7793#
7894# Build qemu
7995#
8096
81- OBJ_DIR=` pwd` /build/$MACHINE
82- OUT_DIR=` pwd`
97+ STEP_DIR=$OBJ_DIR
8398
84- if [[ ! -d $OBJ_DIR ]]; then
99+ if [[ ! -d $STEP_DIR ]]; then
85100 (
86- mkdir -p $OBJ_DIR &&
87- cd $OBJ_DIR || exit 5
101+ mkdir -p $STEP_DIR &&
102+ cd $STEP_DIR || exit 5
103+
104+ rmStep $PREBUILD
88105
89106 $SRC_DIR /configure --prefix=$OUT_DIR \
90107 --cpu=$MACHINE \
@@ -95,13 +112,15 @@ if [[ ! -d $OBJ_DIR ]]; then
95112
96113 make -j$JOBS &&
97114 make install || exit 7
98- ) # || err $?
115+ ) || err $?
99116fi
100117
101118
102119#
103120# Pack qemu in a node-gyp compatible way
104121#
105122
106- mkdir -p prebuilds &&
107- tar -cf - bin libexec share | gzip > prebuilds/$PLATFORM -$ARCH .tar.gz || exit 8
123+ STEP_DIR=$PREBUILD
124+
125+ mkdir -p prebuilds &&
126+ tar -cf - bin libexec share | gzip > $PREBUILD || err 8
0 commit comments