4 EMUL_TARGET_LIST="x86_64-softmmu"
7 echo "usage: build.sh [options] [target]"
10 echo " emulator target, one of: [i386|x86_64|arm|all]. Defaults to \"x86_64\""
14 echo " build debug configuration"
15 echo "-e|--extra EXTRA"
16 echo " extra options for QEMU configure"
17 echo "-p|--cross-prefix CROSS_PREFIX"
18 echo " extra options for QEMU configure"
19 echo "-u|-h|--help|--usage"
20 echo " display this help message and exit"
26 EMUL_TARGET_LIST="i386-softmmu"
29 EMUL_TARGET_LIST="x86_64-softmmu"
32 EMUL_TARGET_LIST="arm-softmmu"
35 EMUL_TARGET_LIST="i386-softmmu,x86_64-softmmu,arm-softmmu"
40 while [ "$#" -gt "0" ]
47 CONFIGURE_APPEND="$CONFIGURE_APPEND --enable-debug"
51 CONFIGURE_APPEND="$CONFIGURE_APPEND $1"
71 if [ -z "$CROSS_PREFIX" ] ; then
75 case "$CROSS_PREFIX" in
77 targetos="CROSS_MINGW64";
80 targetos="CROSS_MINGW32";
85 if [ -z "$TIZEN_SDK_DEV_PATH" ] ; then
86 TIZEN_SDK_DEV_PATH=${HOME}/tizen-sdk-dev
89 if [ ! -z "$CROSS_PREFIX" ] ; then
90 if [ -d "$TIZEN_SDK_DEV_PATH/$CROSS_PREFIX" ] ; then
91 TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH}/$CROSS_PREFIX
95 if [ -d "../.git" ] ; then
96 BRANCH=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
97 if [ -d "$TIZEN_SDK_DEV_PATH/$BRANCH" ] ; then
98 TIZEN_SDK_DEV_PATH="$TIZEN_SDK_DEV_PATH/$BRANCH"
102 if [ ! -z "$EXTRA_CFLAGS" ] ; then
103 CONFIGURE_APPEND="$CONFIGURE_APPEND --extra-cflags=$EXTRA_CFLAGS"
106 if [ ! -z "$EXTRA_LDFLAGS" ] ; then
107 CONFIGURE_APPEND="$CONFIGURE_APPEND --extra-ldflags=$EXTRA_LDFLAGS"
110 echo "##### checking for os... Host OS $hostos, Target OS $targetos"
111 echo "##### TIZEN_SDK_DEV_PATH: ${TIZEN_SDK_DEV_PATH}"
114 # avoid pkg-config bug on Windows
115 if [ -z ${PKG_CONFIG_PATH} ] ; then
116 export PKG_CONFIG_PATH=${TIZEN_SDK_DEV_PATH}/lib/pkgconfig
118 export PKG_CONFIG_PATH=${TIZEN_SDK_DEV_PATH}/lib/pkgconfig:${PKG_CONFIG_PATH}
121 if [ -z ${PKG_CONFIG_LIBDIR} ] ; then
122 if [ ! -z "$CROSS_PREFIX" ] ; then
123 export PKG_CONFIG_LIBDIR=${TIZEN_SDK_DEV_PATH}/lib/pkgconfig
127 # append common options
129 --target-list=$EMUL_TARGET_LIST
153 CONFIGURE_APPEND_WIN="
154 --extra-ldflags=-static-libgcc
155 --extra-ldflags=-static-libstdc++
156 --audio-drv-list=dsound
162 # append platform specific options
166 --extra-ldflags=-rdynamic
167 --extra-ldflags=-Wl,-rpath,'\$\$ORIGIN'
168 --audio-drv-list=alsa
176 --cross-prefix=${CROSS_PREFIX}-
177 --extra-ldflags=-Wl,--large-address-aware
178 $CONFIGURE_APPEND_WIN
184 --cross-prefix=${CROSS_PREFIX}-
185 $CONFIGURE_APPEND_WIN
193 --extra-ldflags=-Wl,--large-address-aware
194 $CONFIGURE_APPEND_WIN
197 # Do not support building Win64 binary on Windows now
203 --extra-cflags=-mmacosx-version-min=10.11
204 --extra-cflags=-Wno-error=deprecated-declarations
205 --extra-cflags=-Wno-error=address-of-packed-member
206 --extra-cflags=-Wno-error=logical-not-parentheses
207 --extra-cflags=-Wno-error=strict-prototypes
208 --extra-ldflags=-Wl,-rpath,'@executable_path'
209 --extra-ldflags=-Wl,-no_weak_imports
210 --audio-drv-list=coreaudio
215 #--extra-ldflags=-rdynamic
216 # TODO: we need general GUI for MacOS
217 # we should use cocoa or sdl
223 echo "##### QEMU configuring for emulator"
224 echo "##### QEMU configure append:" $CONFIGURE_APPEND
225 exec ./configure $CONFIGURE_APPEND