1#!/bin/sh
2#
3# this script is used to rebuild the Android emulator from sources
4# in the current directory. It also contains logic to speed up the
5# rebuild if it detects that you're using the Android build system
6#
7# here's the list of environment variables you can define before
8# calling this script to control it (besides options):
9#
10#
11
12# first, let's see which system we're running this on
13cd `dirname $0`
14
15# source common functions definitions
16. android/build/common.sh
17
18# Parse options
19OPTION_TARGETS=""
20OPTION_DEBUG=no
21OPTION_IGNORE_AUDIO=no
22OPTION_NO_PREBUILTS=no
23OPTION_TRY_64=no
24OPTION_HELP=no
25OPTION_DEBUG=no
26OPTION_STATIC=no
27OPTION_MINGW=no
28
29GLES_INCLUDE=
30GLES_LIBS=
31GLES_SUPPORT=no
32GLES_PROBE=yes
33
34HOST_CC=${CC:-gcc}
35OPTION_CC=
36
37TARGET_ARCH=arm
38
39for opt do
40  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
41  case "$opt" in
42  --help|-h|-\?) OPTION_HELP=yes
43  ;;
44  --verbose)
45    if [ "$VERBOSE" = "yes" ] ; then
46        VERBOSE2=yes
47    else
48        VERBOSE=yes
49    fi
50  ;;
51  --debug) OPTION_DEBUG=yes
52  ;;
53  --install=*) OPTION_TARGETS="$OPTION_TARGETS $optarg";
54  ;;
55  --sdl-config=*) SDL_CONFIG=$optarg
56  ;;
57  --mingw) OPTION_MINGW=yes
58  ;;
59  --cc=*) OPTION_CC="$optarg"
60  ;;
61  --no-strip) OPTION_NO_STRIP=yes
62  ;;
63  --debug) OPTION_DEBUG=yes
64  ;;
65  --ignore-audio) OPTION_IGNORE_AUDIO=yes
66  ;;
67  --no-prebuilts) OPTION_NO_PREBUILTS=yes
68  ;;
69  --try-64) OPTION_TRY_64=yes
70  ;;
71  --static) OPTION_STATIC=yes
72  ;;
73  --arch=*) TARGET_ARCH=$optarg
74  ;;
75  --gles-include=*) GLES_INCLUDE=$optarg
76  GLES_SUPPORT=yes
77  ;;
78  --gles-libs=*) GLES_LIBS=$optarg
79  GLES_SUPPORT=yes
80  ;;
81  --no-gles) GLES_PROBE=no
82  ;;
83  *)
84    echo "unknown option '$opt', use --help"
85    exit 1
86  esac
87done
88
89# Print the help message
90#
91if [ "$OPTION_HELP" = "yes" ] ; then
92    cat << EOF
93
94Usage: rebuild.sh [options]
95Options: [defaults in brackets after descriptions]
96EOF
97    echo "Standard options:"
98    echo "  --help                   print this message"
99    echo "  --install=FILEPATH       copy emulator executable to FILEPATH [$TARGETS]"
100    echo "  --cc=PATH                specify C compiler [$HOST_CC]"
101    echo "  --arch=ARM               specify target architecture [$TARGET_ARCH]"
102    echo "  --sdl-config=FILE        use specific sdl-config script [$SDL_CONFIG]"
103    echo "  --no-strip               do not strip emulator executable"
104    echo "  --debug                  enable debug (-O0 -g) build"
105    echo "  --ignore-audio           ignore audio messages (may build sound-less emulator)"
106    echo "  --no-prebuilts           do not use prebuilt libraries and compiler"
107    echo "  --try-64                 try to build a 64-bit executable (may crash)"
108    echo "  --mingw                  build Windows executable on Linux"
109    echo "  --static                 build a completely static executable"
110    echo "  --verbose                verbose configuration"
111    echo "  --debug                  build debug version of the emulator"
112    echo "  --gles-include=PATH      specify path to GLES emulation headers"
113    echo "  --gles-libs=PATH         specify path to GLES emulation host libraries"
114    echo "  --no-gles                disable GLES emulation support"
115    echo ""
116    exit 1
117fi
118
119# On Linux, try to use our prebuilt toolchain to generate binaries
120# that are compatible with Ubuntu 8.04
121if [ -z "$CC" -a -z "$OPTION_CC" -a "$HOST_OS" = linux ] ; then
122    HOST_CC=`dirname $0`/../../prebuilts/tools/gcc-sdk/gcc
123    if [ -f "$HOST_CC" ] ; then
124        echo "Using prebuilt toolchain: $HOST_CC"
125        CC="$HOST_CC"
126    fi
127fi
128
129echo "OPTION_CC='$OPTION_CC'"
130if [ -n "$OPTION_CC" ]; then
131    echo "Using specified C compiler: $OPTION_CC"
132    CC="$OPTION_CC"
133fi
134
135if [ -z "$CC" ]; then
136  CC=$HOST_CC
137fi
138
139# we only support generating 32-bit binaris on 64-bit systems.
140# And we may need to add a -Wa,--32 to CFLAGS to let the assembler
141# generate 32-bit binaries on Linux x86_64.
142#
143if [ "$OPTION_TRY_64" != "yes" ] ; then
144    force_32bit_binaries
145fi
146
147case $OS in
148    linux-*)
149        TARGET_DLL_SUFFIX=.so
150        ;;
151    darwin-*)
152        TARGET_DLL_SUFFIX=.dylib
153        ;;
154    windows*)
155        TARGET_DLL_SUFFIX=.dll
156esac
157
158TARGET_OS=$OS
159if [ "$OPTION_MINGW" = "yes" ] ; then
160    enable_linux_mingw
161    TARGET_OS=windows
162    TARGET_DLL_SUFFIX=.dll
163else
164    enable_cygwin
165fi
166
167# Are we running in the Android build system ?
168check_android_build
169
170
171# Adjust a few things when we're building within the Android build
172# system:
173#    - locate prebuilt directory
174#    - locate and use prebuilt libraries
175#    - copy the new binary to the correct location
176#
177if [ "$OPTION_NO_PREBUILTS" = "yes" ] ; then
178    IN_ANDROID_BUILD=no
179fi
180
181# This is the list of static and shared host libraries we need to link
182# against in order to support OpenGLES emulation properly. Note that in
183# the case of a standalone build, we will find these libraries inside the
184# platform build tree and copy them into objs/lib/ automatically, unless
185# you use --gles-libs to point explicitely to a different directory.
186#
187if [ "$OPTION_TRY_64" != "yes" ] ; then
188    GLES_SHARED_LIBRARIES="libOpenglRender libGLES_CM_translator libGLES_V2_translator libEGL_translator"
189else
190    GLES_SHARED_LIBRARIES="lib64OpenglRender lib64GLES_CM_translator lib64GLES_V2_translator lib64EGL_translator"
191fi
192
193if [ "$IN_ANDROID_BUILD" = "yes" ] ; then
194    locate_android_prebuilt
195
196    # use ccache if USE_CCACHE is defined and the corresponding
197    # binary is available.
198    #
199    # note: located in PREBUILT/ccache/ccache in the new tree layout
200    #       located in PREBUILT/ccache in the old one
201    #
202    if [ -n "$USE_CCACHE" ] ; then
203        CCACHE="$ANDROID_PREBUILT/ccache/ccache$EXE"
204        if [ ! -f $CCACHE ] ; then
205            CCACHE="$ANDROID_PREBUILT/ccache$EXE"
206        fi
207        if [ ! -f $CCACHE ] ; then
208            CCACHE="$ANDROID_PREBUILTS/ccache/ccache$EXE"
209        fi
210        if [ -f $CCACHE ] ; then
211            CC="$CCACHE $CC"
212            log "Prebuilt   : CCACHE=$CCACHE"
213	else
214            log "Prebuilt   : CCACHE can't be found"
215        fi
216    fi
217
218    # finally ensure that our new binary is copied to the 'out'
219    # subdirectory as 'emulator'
220    HOST_BIN=$(get_android_abs_build_var HOST_OUT_EXECUTABLES)
221    if [ "$TARGET_OS" = "windows" ]; then
222        HOST_BIN=$(echo $HOST_BIN | sed "s%$OS/bin%windows/bin%")
223    fi
224    if [ -n "$HOST_BIN" ] ; then
225        OPTION_TARGETS="$OPTION_TARGETS $HOST_BIN/emulator$EXE"
226        log "Targets    : TARGETS=$OPTION_TARGETS"
227    fi
228
229    # find the Android SDK Tools revision number
230    TOOLS_PROPS=$ANDROID_TOP/sdk/files/tools_source.properties
231    if [ -f $TOOLS_PROPS ] ; then
232        ANDROID_SDK_TOOLS_REVISION=`awk -F= '/Pkg.Revision/ { print $2; }' $TOOLS_PROPS 2> /dev/null`
233        log "Tools      : Found tools revision number $ANDROID_SDK_TOOLS_REVISION"
234    else
235        log "Tools      : Could not locate $TOOLS_PROPS !?"
236    fi
237
238    # Try to find the GLES emulation headers and libraries automatically
239    if [ "$GLES_PROBE" = "yes" ]; then
240        GLES_SUPPORT=yes
241        if [ -z "$GLES_INCLUDE" ]; then
242            log "GLES       : Probing for headers"
243            GLES_INCLUDE=$ANDROID_TOP/development/tools/emulator/opengl/host/include
244            if [ -d "$GLES_INCLUDE" ]; then
245                log "GLES       : Headers in $GLES_INCLUDE"
246            else
247                echo "Warning: Could not find OpenGLES emulation include dir: $GLES_INCLUDE"
248                echo "Disabling GLES emulation from this build!"
249                GLES_SUPPORT=no
250            fi
251        fi
252        if [ -z "$GLES_LIBS" ]; then
253            log "GLES       : Probing for host libraries"
254            GLES_LIBS=$(dirname "$HOST_BIN")/lib
255            if [ -d "$GLES_LIBS" ]; then
256                echo "GLES       : Libs in $GLES_LIBS"
257            else
258                echo "Warning: Could nof find OpenGLES emulation libraries in: $GLES_LIBS"
259                echo "Disabling GLES emulation from this build!"
260                GLES_SUPPORT=no
261            fi
262        fi
263    fi
264fi  # IN_ANDROID_BUILD = no
265
266if [ "$GLES_SUPPORT" = "yes" ]; then
267    if [ -z "$GLES_INCLUDE" -o -z "$GLES_LIBS" ]; then
268        echo "ERROR: You must use both --gles-include and --gles-libs at the same time!"
269        echo "       Or use --no-gles to disable its support from this build."
270        exit 1
271    fi
272
273    GLES_HEADER=$GLES_INCLUDE/libOpenglRender/render_api.h
274    if [ ! -f "$GLES_HEADER" ]; then
275        echo "ERROR: Missing OpenGLES emulation header file: $GLES_HEADER"
276        echo "Please fix this by using --gles-include to point to the right directory!"
277        exit 1
278    fi
279
280    mkdir -p objs/lib
281
282    for lib in $GLES_SHARED_LIBRARIES; do
283        GLES_LIB=$GLES_LIBS/${lib}$TARGET_DLL_SUFFIX
284        if [ ! -f "$GLES_LIB" ]; then
285            echo "ERROR: Missing OpenGLES emulation host library: $GLES_LIB"
286            echo "Please fix this by using --gles-libs to point to the right directory!"
287            if [ "$IN_ANDROID_BUILD" = "true" ]; then
288                echo "You might also be missing the library because you forgot to rebuild the whole platform!"
289            fi
290            exit 1
291        fi
292        cp $GLES_LIB objs/lib
293        if [ $? != 0 ]; then
294            echo "ERROR: Could not find required OpenGLES emulation library: $GLES_LIB"
295            exit 1
296        else
297            log "GLES       : Copying $GLES_LIB"
298        fi
299    done
300fi
301
302# we can build the emulator with Cygwin, so enable it
303enable_cygwin
304
305setup_toolchain
306
307###
308###  SDL Probe
309###
310
311if [ -n "$SDL_CONFIG" ] ; then
312
313	# check that we can link statically with the library.
314	#
315	SDL_CFLAGS=`$SDL_CONFIG --cflags`
316	SDL_LIBS=`$SDL_CONFIG --static-libs`
317
318	# quick hack, remove the -D_GNU_SOURCE=1 of some SDL Cflags
3197	# since they break recent Mingw releases
320	SDL_CFLAGS=`echo $SDL_CFLAGS | sed -e s/-D_GNU_SOURCE=1//g`
321
322	log "SDL-probe  : SDL_CFLAGS = $SDL_CFLAGS"
323	log "SDL-probe  : SDL_LIBS   = $SDL_LIBS"
324
325
326	EXTRA_CFLAGS="$SDL_CFLAGS"
327	EXTRA_LDFLAGS="$SDL_LIBS"
328
329	case "$OS" in
330		freebsd-*)
331		EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -lpthread"
332		;;
333	esac
334
335	cat > $TMPC << EOF
336#include <SDL.h>
337#undef main
338int main( int argc, char** argv ) {
339   return SDL_Init (SDL_INIT_VIDEO);
340}
341EOF
342	feature_check_link  SDL_LINKING
343
344	if [ $SDL_LINKING != "yes" ] ; then
345		echo "You provided an explicit sdl-config script, but the corresponding library"
346		echo "cannot be statically linked with the Android emulator directly."
347		echo "Error message:"
348		cat $TMPL
349		clean_exit
350	fi
351	log "SDL-probe  : static linking ok"
352
353	# now, let's check that the SDL library has the special functions
354	# we added to our own sources
355	#
356	cat > $TMPC << EOF
357#include <SDL.h>
358#undef main
359int main( int argc, char** argv ) {
360	int  x, y;
361	SDL_Rect  r;
362	SDL_WM_GetPos(&x, &y);
363	SDL_WM_SetPos(x, y);
364	SDL_WM_GetMonitorDPI(&x, &y);
365	SDL_WM_GetMonitorRect(&r);
366	return SDL_Init (SDL_INIT_VIDEO);
367}
368EOF
369	feature_check_link  SDL_LINKING
370
371	if [ $SDL_LINKING != "yes" ] ; then
372		echo "You provided an explicit sdl-config script in SDL_CONFIG, but the"
373		echo "corresponding library doesn't have the patches required to link"
374		echo "with the Android emulator. Unsetting SDL_CONFIG will use the"
375		echo "sources bundled with the emulator instead"
376		echo "Error:"
377		cat $TMPL
378		clean_exit
379	fi
380
381	log "SDL-probe  : extra features ok"
382	clean_temp
383
384	EXTRA_CFLAGS=
385	EXTRA_LDFLAGS=
386fi
387
388###
389###  Audio subsystems probes
390###
391PROBE_COREAUDIO=no
392PROBE_ALSA=no
393PROBE_OSS=no
394PROBE_ESD=no
395PROBE_PULSEAUDIO=no
396PROBE_WINAUDIO=no
397
398case "$TARGET_OS" in
399    darwin*) PROBE_COREAUDIO=yes;
400    ;;
401    linux-*) PROBE_ALSA=yes; PROBE_OSS=yes; PROBE_ESD=yes; PROBE_PULSEAUDIO=yes;
402    ;;
403    freebsd-*) PROBE_OSS=yes;
404    ;;
405    windows) PROBE_WINAUDIO=yes
406    ;;
407esac
408
409ORG_CFLAGS=$CFLAGS
410ORG_LDFLAGS=$LDFLAGS
411
412if [ "$OPTION_IGNORE_AUDIO" = "yes" ] ; then
413PROBE_ESD_ESD=no
414PROBE_ALSA=no
415PROBE_PULSEAUDIO=no
416fi
417
418# Probe a system library
419#
420# $1: Variable name (e.g. PROBE_ESD)
421# $2: Library name (e.g. "Alsa")
422# $3: Path to source file for probe program (e.g. android/config/check-alsa.c)
423# $4: Package name (e.g. libasound-dev)
424#
425probe_system_library ()
426{
427    if [ `var_value $1` = yes ] ; then
428        CFLAGS="$ORG_CFLAGS"
429        LDFLAGS="$ORG_LDFLAGS -ldl"
430        cp -f android/config/check-esd.c $TMPC
431        compile
432        if [ $? = 0 ] ; then
433            log "AudioProbe : $2 seems to be usable on this system"
434        else
435            if [ "$OPTION_IGNORE_AUDIO" = no ] ; then
436                echo "The $2 development files do not seem to be installed on this system"
437                echo "Are you missing the $4 package ?"
438                echo "Correct the errors below and try again:"
439                cat $TMPL
440                clean_exit
441            fi
442            eval $1=no
443            log "AudioProbe : $2 seems to be UNUSABLE on this system !!"
444        fi
445    fi
446}
447
448probe_system_library PROBE_ESD        ESounD     android/config/check-esd.c libesd-dev
449probe_system_library PROBE_ALSA       Alsa       android/config/check-alsa.c libasound-dev
450probe_system_library PROBE_PULSEAUDIO PulseAudio android/config/check-pulseaudio.c libpulse-dev
451
452CFLAGS=$ORG_CFLAGS
453LDFLAGS=$ORG_LDFLAGS
454
455# create the objs directory that is going to contain all generated files
456# including the configuration ones
457#
458mkdir -p objs
459
460###
461###  Compiler probe
462###
463
464####
465####  Host system probe
466####
467
468# because the previous version could be read-only
469rm -f $TMPC
470
471# check host endianess
472#
473HOST_BIGENDIAN=no
474if [ "$TARGET_OS" = "$OS" ] ; then
475cat > $TMPC << EOF
476#include <inttypes.h>
477int main(int argc, char ** argv){
478        volatile uint32_t i=0x01234567;
479        return (*((uint8_t*)(&i))) == 0x01;
480}
481EOF
482feature_run_exec HOST_BIGENDIAN
483fi
484
485# check size of host long bits
486HOST_LONGBITS=32
487if [ "$TARGET_OS" = "$OS" ] ; then
488cat > $TMPC << EOF
489int main(void) {
490        return sizeof(void*)*8;
491}
492EOF
493feature_run_exec HOST_LONGBITS
494fi
495
496# check whether we have <byteswap.h>
497#
498feature_check_header HAVE_BYTESWAP_H      "<byteswap.h>"
499feature_check_header HAVE_MACHINE_BSWAP_H "<machine/bswap.h>"
500feature_check_header HAVE_FNMATCH_H       "<fnmatch.h>"
501
502# Build the config.make file
503#
504
505case $TARGET_OS in
506    windows)
507        TARGET_EXEEXT=.exe
508        ;;
509    *)
510        TARGET_EXEEXT=
511        ;;
512esac
513
514create_config_mk
515echo "" >> $config_mk
516if [ $TARGET_ARCH = arm ] ; then
517echo "TARGET_ARCH       := arm" >> $config_mk
518fi
519
520if [ $TARGET_ARCH = x86 ] ; then
521echo "TARGET_ARCH       := x86" >> $config_mk
522fi
523
524echo "HOST_PREBUILT_TAG := $TARGET_OS" >> $config_mk
525echo "HOST_EXEEXT       := $TARGET_EXEEXT" >> $config_mk
526echo "PREBUILT          := $ANDROID_PREBUILT" >> $config_mk
527echo "PREBUILTS         := $ANDROID_PREBUILTS" >> $config_mk
528
529PWD=`pwd`
530echo "SRC_PATH          := $PWD" >> $config_mk
531if [ -n "$SDL_CONFIG" ] ; then
532echo "QEMU_SDL_CONFIG   := $SDL_CONFIG" >> $config_mk
533fi
534echo "CONFIG_COREAUDIO  := $PROBE_COREAUDIO" >> $config_mk
535echo "CONFIG_WINAUDIO   := $PROBE_WINAUDIO" >> $config_mk
536echo "CONFIG_ESD        := $PROBE_ESD" >> $config_mk
537echo "CONFIG_ALSA       := $PROBE_ALSA" >> $config_mk
538echo "CONFIG_OSS        := $PROBE_OSS" >> $config_mk
539echo "CONFIG_PULSEAUDIO := $PROBE_PULSEAUDIO" >> $config_mk
540echo "BUILD_STANDALONE_EMULATOR := true" >> $config_mk
541if [ $OPTION_DEBUG = yes ] ; then
542    echo "BUILD_DEBUG_EMULATOR := true" >> $config_mk
543fi
544if [ $OPTION_STATIC = yes ] ; then
545    echo "CONFIG_STATIC_EXECUTABLE := true" >> $config_mk
546fi
547
548if [ -n "$ANDROID_SDK_TOOLS_REVISION" ] ; then
549    echo "ANDROID_SDK_TOOLS_REVISION := $ANDROID_SDK_TOOLS_REVISION" >> $config_mk
550fi
551
552if [ "$OPTION_MINGW" = "yes" ] ; then
553    echo "" >> $config_mk
554    echo "USE_MINGW := 1" >> $config_mk
555    echo "HOST_OS   := windows" >> $config_mk
556fi
557
558if [ "$GLES_INCLUDE" -a "$GLES_LIBS" ]; then
559    echo "QEMU_OPENGLES_INCLUDE    := $GLES_INCLUDE" >> $config_mk
560    echo "QEMU_OPENGLES_LIBS       := $GLES_LIBS"    >> $config_mk
561fi
562
563# Build the config-host.h file
564#
565config_h=objs/config-host.h
566echo "/* This file was autogenerated by '$PROGNAME' */" > $config_h
567echo "#define CONFIG_QEMU_SHAREDIR   \"/usr/local/share/qemu\"" >> $config_h
568echo "#define HOST_LONG_BITS  $HOST_LONGBITS" >> $config_h
569if [ "$HAVE_BYTESWAP_H" = "yes" ] ; then
570  echo "#define CONFIG_BYTESWAP_H 1" >> $config_h
571fi
572if [ "$HAVE_MACHINE_BYTESWAP_H" = "yes" ] ; then
573  echo "#define CONFIG_MACHINE_BSWAP_H 1" >> $config_h
574fi
575if [ "$HAVE_FNMATCH_H" = "yes" ] ; then
576  echo "#define CONFIG_FNMATCH  1" >> $config_h
577fi
578echo "#define CONFIG_GDBSTUB  1" >> $config_h
579echo "#define CONFIG_SLIRP    1" >> $config_h
580echo "#define CONFIG_SKINS    1" >> $config_h
581echo "#define CONFIG_TRACE    1" >> $config_h
582
583case "$TARGET_OS" in
584    windows)
585        echo "#define CONFIG_WIN32  1" >> $config_h
586        ;;
587    *)
588        echo "#define CONFIG_POSIX  1" >> $config_h
589        ;;
590esac
591
592case "$TARGET_OS" in
593    linux-*)
594        echo "#define CONFIG_KVM_GS_RESTORE 1" >> $config_h
595        ;;
596esac
597
598# only Linux has fdatasync()
599case "$TARGET_OS" in
600    linux-*)
601        echo "#define CONFIG_FDATASYNC    1" >> $config_h
602        ;;
603esac
604
605case "$TARGET_OS" in
606    linux-*|darwin-*)
607        echo "#define CONFIG_MADVISE  1" >> $config_h
608        ;;
609esac
610
611# the -nand-limits options can only work on non-windows systems
612if [ "$TARGET_OS" != "windows" ] ; then
613    echo "#define CONFIG_NAND_LIMITS  1" >> $config_h
614fi
615echo "#define QEMU_VERSION    \"0.10.50\"" >> $config_h
616echo "#define QEMU_PKGVERSION \"Android\"" >> $config_h
617case "$CPU" in
618    x86) CONFIG_CPU=I386
619    ;;
620    ppc) CONFIG_CPU=PPC
621    ;;
622    x86_64) CONFIG_CPU=X86_64
623    ;;
624    *) CONFIG_CPU=$CPU
625    ;;
626esac
627echo "#define HOST_$CONFIG_CPU    1" >> $config_h
628if [ "$HOST_BIGENDIAN" = "1" ] ; then
629  echo "#define HOST_WORDS_BIGENDIAN 1" >> $config_h
630fi
631BSD=0
632case "$TARGET_OS" in
633    linux-*) CONFIG_OS=LINUX
634    ;;
635    darwin-*) CONFIG_OS=DARWIN
636              BSD=1
637    ;;
638    freebsd-*) CONFIG_OS=FREEBSD
639              BSD=1
640    ;;
641    windows*) CONFIG_OS=WIN32
642    ;;
643    *) CONFIG_OS=$OS
644esac
645
646if [ "$OPTION_STATIC" = "yes" ] ; then
647    echo "CONFIG_STATIC_EXECUTABLE := true" >> $config_mk
648    echo "#define CONFIG_STATIC_EXECUTABLE  1" >> $config_h
649fi
650
651case $TARGET_OS in
652    linux-*|darwin-*)
653        echo "#define CONFIG_IOVEC 1" >> $config_h
654        ;;
655esac
656
657echo "#define CONFIG_$CONFIG_OS   1" >> $config_h
658if [ $BSD = 1 ] ; then
659    echo "#define CONFIG_BSD       1" >> $config_h
660    echo "#define O_LARGEFILE      0" >> $config_h
661    echo "#define MAP_ANONYMOUS    MAP_ANON" >> $config_h
662fi
663
664echo "#define CONFIG_ANDROID       1" >> $config_h
665
666if [ "$GLES_INCLUDE" -a "$GLES_LIBS" ]; then
667    echo "#define CONFIG_ANDROID_OPENGLES 1" >> $config_h
668fi
669
670log "Generate   : $config_h"
671
672echo "Ready to go. Type 'make' to build emulator"
673