Merge branch 'features/brillcodec_2i' into 'tizen_next'
[sdk/emulator/qemu.git] / tizen / src / Makefile
1 EMUL_DIR=../emulator
2 DIBS_X86_DIR=../x86
3 DIBS_ARM_DIR=../arm
4 DIBS_COMMON_DIR=../common
5 DIBS_SWT_DIR=-Dclasspath.dibs=$(ROOTDIR)/tools/emulator/bin
6
7 ifeq ($(CC),"")
8         @echo "cc does not exist"
9         @exit 1
10 endif
11
12 ifndef TIZEN_SDK_DEV_PATH
13 TIZEN_SDK_DEV_PATH=${HOME}/tizen-sdk-dev
14 endif
15
16 ifneq ($(wildcard ../../config-host.mak),)
17 include ../../config-host.mak
18
19 TARGET_EXE += util/check-cam$(EXESUF)
20 ifdef CONFIG_YAGL
21 TARGET_EXE += util/check-gl$(EXESUF)
22 endif
23 ifndef CONFIG_LINUX
24 TARGET_EXE += util/check-hax$(EXESUF)
25 endif
26
27 TARGET_DSO +=
28
29 all: qemu skin_client $(TARGET_EXE) $(TARGET_DSO)
30 qemu: $(TARGET_EXE) $(TARGET_DSO) build_info
31         cd ../../ && $(MAKE)
32 qemu_clean:
33         cd ../../ && $(MAKE) clean
34 qemu_distclean:
35         cd ../../ && $(MAKE) distclean
36
37 # Building check-gl
38 CHECK_GL_OBJS = util/check_gl.o util/check_gl_core.o
39 CHECK_GL_CFLAGS = -c -I$(SRC_PATH)/hw/yagl/yagl_inc
40 CHECK_GL_LDFLAGS =
41 CHECK_GL_TARGET = util/check-gl$(EXESUF)
42 ifdef CONFIG_LINUX
43 CHECK_GL_OBJS += util/check_gl_glx.o
44 CHECK_GL_LDFLAGS += -lX11 -lXext -lglib-2.0 -ldl
45 endif
46 ifdef CONFIG_WIN32
47 CHECK_GL_OBJS += util/check_gl_wgl.o
48 CHECK_GL_LDFLAGS += -fstack-protector `pkg-config --libs glib-2.0` -lgdi32
49 endif
50 ifdef CONFIG_DARWIN
51 CHECK_GL_OBJS += util/check_gl_cgl.o
52 CHECK_GL_LDFLAGS += -mmacosx-version-min=10.4 `pkg-config --cflags --libs glib-2.0` -framework OpenGL
53 endif
54
55 util/check-gl$(EXESUF): $(CHECK_GL_OBJS)
56         $(CC) $(CHECK_GL_OBJS) $(CHECK_GL_LDFLAGS) -o $@
57 $(CHECK_GL_OBJS): %.o: %.c
58         $(CC) $< $(CHECK_GL_CFLAGS) -o $@
59
60 # Building check-cam
61 CHECK_CAM_CFLAGS = -c
62 ifdef CONFIG_LINUX
63 CHECK_CAM_LDFLAGS = -lv4l2 -lv4lconvert
64 endif
65 ifdef CONFIG_WIN32
66 CHECK_CAM_CFLAGS += -I.
67 CHECK_CAM_LDFLAGS = -lole32 -loleaut32 -luuid -lstrmiids
68 endif
69 ifdef CONFIG_DARWIN
70 endif
71
72 util/check-cam$(EXESUF): util/check_cam.o
73         $(CC) $< -o $@ $(CHECK_CAM_LDFLAGS)
74 util/check_cam.o: %.o: %.c
75         $(CC) $< -o $@ $(CHECK_CAM_CFLAGS)
76
77 # Building check-hax
78 CHECK_HAX_CFLAGS = -c
79 ifdef CONFIG_LINUX
80 endif
81 ifdef CONFIG_WIN32
82 endif
83 ifdef CONFIG_DARWIN
84 CHECK_HAX_CFLAGS += -mmacosx-version-min=10.4
85 endif
86 util/check-hax$(EXESUF): util/check_hax.o
87         $(CC) $< -o $@
88 util/check_hax.o: %.o: %.c
89         $(CC) $< $(CHECK_HAX_CFLAGS) -o $@
90
91 # Building java skin
92 skin_client:
93 ifdef CONFIG_USE_SHM
94         TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH} ant -DdoNotUseSHM=false -buildfile skin/client/build.xml make-jar
95 else
96 ifdef CONFIG_SDL
97         TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH} ant -DdoNotUseSHM=true -buildfile skin/client/build.xml make-jar
98 endif
99 endif
100
101 build_info:
102         @echo "Generate a build information file"
103         @echo "/* Automatically generated by Makefile - do not modify! */" > build_info.h
104         @echo "static const char build_version[] = \"`cat VERSION`\";" >> build_info.h
105         @echo "static const char build_date[] = \"`date +"%F %T %Z"`\";" >> build_info.h
106         @echo "static const char pkginfo_version[] = \"`sed -n '1p' ./../../package/pkginfo.manifest | sed 's/\"//g'`\";" >> build_info.h
107         @echo "static const char pkginfo_maintainer[] = \"`sed -n '2p' ./../../package/pkginfo.manifest | sed 's/\"//g'`\";" >> build_info.h
108         @echo "static const char pkginfo_githead[] = \"`git rev-parse HEAD`\";" >> build_info.h
109         @echo "static const char latest_gittag[] = \"`git for-each-ref --count=1 --sort=-taggerdate refs/tags/ --format='Latest Git Tag : %(refname:short) (%(subject))' | sed 's/\"//g'`\";" >> build_info.h
110
111
112 clean: qemu_clean
113         rm -f util/check-hax$(EXESUF) util/check-cam$(EXESUF) util/check-gl$(EXESUF)
114 distclean: clean qemu_distclean
115
116 install: all
117         mkdir -p $(EMUL_DIR)/bin
118         mkdir -p $(EMUL_DIR)/etc
119         mkdir -p $(EMUL_DIR)/data
120         mkdir -p $(EMUL_DIR)/images
121
122         @for target in $(TARGET_DIRS); do \
123         case "$$target" in \
124         i386-softmmu) \
125                 mkdir -p $(EMUL_DIR)/data/bios ;\
126                 echo "Copying i386-softmmu/qemu-system-i386$(EXESUF) to $(EMUL_DIR)/bin/emulator-x86$(EXESUF)" ;\
127                 cp -pP ../../i386-softmmu/qemu-system-i386$(EXESUF) $(EMUL_DIR)/bin/emulator-x86$(EXESUF) ;\
128                 echo "Copying bioses to $(EMUL_DIR)/data/bios" ;\
129                 cp -pP ../../pc-bios/bios-256k.bin $(EMUL_DIR)/data/bios ;\
130                 cp -pP ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios ;\
131                 cp -pP ../../pc-bios/efi-virtio.rom $(EMUL_DIR)/data/bios ;\
132                 cp -pP ../../pc-bios/acpi-dsdt.aml $(EMUL_DIR)/data/bios ;\
133                 ;; \
134         arm-softmmu) \
135                 echo "Copying arm-softmmu/qemu-system-arm$(EXESUF) to $(EMUL_DIR)/bin/emulator-arm$(EXESUF)" ;\
136                 cp -pP ../../arm-softmmu/qemu-system-arm$(EXESUF) $(EMUL_DIR)/bin/emulator-arm$(EXESUF) ;\
137                 ;; \
138         esac; \
139         done
140
141         cp -pP ../../qemu-img$(EXESUF) $(EMUL_DIR)/bin
142
143 ifndef CONFIG_WIN32
144         cp -pP scripts/emulator.sh $(EMUL_DIR)/bin
145 else
146         cp -pP scripts/emulator.bat $(EMUL_DIR)/bin
147 endif
148
149 # resources and jar for skin
150 ifdef CONFIG_SDL
151         cp -pP skin/client/emulator-skin.jar $(EMUL_DIR)/bin
152         cp -pPR skin/client/skins $(EMUL_DIR)
153         cp -pP skin/client/resource/images/blank-guide.png $(EMUL_DIR)/images
154 else
155 ifdef CONFIG_USE_SHM
156         cp -pP skin/client/emulator-skin.jar $(EMUL_DIR)/bin
157         cp -pPR skin/client/skins $(EMUL_DIR)
158 endif
159 endif
160
161 # check capabilities of OpenGL and Webcam
162         cp -pP util/check-gl$(EXESUF) $(EMUL_DIR)/bin
163         cp -pP util/check-cam$(EXESUF) $(EMUL_DIR)/bin
164
165 # Enable HW Virtualization on Linux
166 ifdef CONFIG_LINUX
167         cp -pP ../distrib/initscript/tizen-kvm $(EMUL_DIR)/etc
168         cp -pP ../distrib/initscript/45-tizen-kvm.rules $(EMUL_DIR)/etc
169 endif
170
171 # check HW Virtualization on Windows and MAC OS X.
172 ifndef CONFIG_LINUX
173         cp -pP util/check-hax$(EXESUF) $(EMUL_DIR)/bin
174 endif
175
176 # give a title name for sdb terminal.
177 ifdef CONFIG_DARWIN
178         cp -pP scripts/sdbscript $(EMUL_DIR)/bin
179 endif
180
181 # use shared memory for display framebuffer
182 ifdef CONFIG_USE_SHM
183 ifdef CONFIG_LINUX
184         cp -pP skin/client/native_src/libshared.so $(EMUL_DIR)/bin
185 endif
186 ifdef CONFIG_DARWIN
187         cp -pP skin/client/native_src/libshared.dylib $(EMUL_DIR)/bin
188 endif
189 endif
190
191 # use GTK for CopyToClipboard on Ubuntu 12.04 64bit
192 ifdef CONFIG_LINUX
193         cp -pP skin/client/native_src/clipboard.py $(EMUL_DIR)/bin
194 endif
195
196 # change loading path of dynamic shared libraries on MAC OS X
197 ifdef CONFIG_DARWIN
198         install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(EMUL_DIR)/bin/qemu-img
199         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/qemu-img
200         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/qemu-img
201         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/qemu-img
202         install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(EMUL_DIR)/bin/qemu-img
203         install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(EMUL_DIR)/bin/qemu-img
204         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/check-gl
205         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/check-gl
206         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/check-gl
207
208         @for target in $(TARGET_DIRS); do \
209         case "$$target" in \
210         i386-softmmu) \
211                 install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
212                 install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
213                 install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
214                 install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
215                 install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
216                 install_name_tool -change /opt/local/lib/libncurses.5.dylib @loader_path/libncurses.5.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
217                 install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
218                 install_name_tool -change /opt/local/lib/libpixman-1.0.dylib @loader_path/libpixman-1.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
219                 install_name_tool -change /opt/local/lib/libpng16.16.dylib @loader_path/libpng16.dylib $(EMUL_DIR)/bin/emulator-x86; \
220                 ;; \
221         arm-softmmu) \
222                 ;; \
223         esac; \
224         done
225 endif
226
227 # for dibs system...
228 all_dibs: qemu skin_client_dibs
229 skin_client_dibs:
230 ifdef CONFIG_USE_SHM
231         TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH} ant -DdoNotUseSHM=false ${DIBS_SWT_DIR} -buildfile skin/client/build.xml make-jar
232 else
233 ifdef CONFIG_SDL
234         TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH} ant -DdoNotNotUseSHM=true ${DIBS_SWT_DIR} -buildfile skin/client/build.xml make-jar
235 endif
236 endif
237
238
239 install_dibs: all_dibs
240         mkdir -p $(DIBS_COMMON_DIR)/bin
241         mkdir -p $(DIBS_COMMON_DIR)/etc
242         mkdir -p $(DIBS_COMMON_DIR)/images
243         mkdir -p $(DIBS_X86_DIR)/bin
244         mkdir -p $(DIBS_X86_DIR)/data
245         mkdir -p $(DIBS_X86_DIR)/etc
246         mkdir -p $(DIBS_ARM_DIR)/bin
247         @for target in $(TARGET_DIRS); do \
248         case "$$target" in \
249         i386-softmmu) \
250                 mkdir -p $(DIBS_X86_DIR)/data/bios ;\
251                 echo "Copying i386-softmmu/qemu-system-i386$(EXESUF) to $(DIBS_X86__DIR)/bin/emulator-x86$(EXESUF)" ;\
252                 cp ../../i386-softmmu/qemu-system-i386$(EXESUF) $(DIBS_X86_DIR)/bin/emulator-x86$(EXESUF) ;\
253                 echo "Copying bioses to $(DIBS_X86_DIR)/data/bios" ;\
254                 cp -pP ../../pc-bios/bios-256k.bin $(DIBS_X86_DIR)/data/bios ;\
255                 cp -pP ../../pc-bios/linuxboot.bin $(DIBS_X86_DIR)/data/bios ;\
256                 cp -pP ../../pc-bios/efi-virtio.rom $(DIBS_X86_DIR)/data/bios ;\
257                 cp -pP ../../pc-bios/acpi-dsdt.aml $(DIBS_X86_DIR)/data/bios ;\
258                 ;; \
259         arm-softmmu) \
260                 echo "Copying arm-softmmu/qemu-system-arm$(EXESUF) to $(DIBS_ARM_DIR)/bin/emulator-arm$(EXESUF)" ;\
261                 cp -pP ../../arm-softmmu/qemu-system-arm$(EXESUF) $(DIBS_ARM_DIR)/bin/emulator-arm$(EXESUF) ;\
262                 ;; \
263         esac; \
264         done
265
266         cp -pP ../../qemu-img$(EXESUF) $(DIBS_COMMON_DIR)/bin
267
268 ifndef CONFIG_WIN32
269         cp -pP scripts/emulator.sh $(DIBS_COMMON_DIR)/bin
270 else
271         cp -pP scripts/emulator.bat $(DIBS_COMMON_DIR)/bin
272 endif
273
274 # resources and jar for skin
275 ifdef CONFIG_SDL
276         cp -pP skin/client/emulator-skin.jar $(DIBS_COMMON_DIR)/bin
277         cp -pP skin/client/resource/images/blank-guide.png $(DIBS_COMMON_DIR)/images
278 else
279 ifdef CONFIG_USE_SHM
280         cp -pP skin/client/emulator-skin.jar $(DIBS_COMMON_DIR)/bin
281 endif
282 endif
283
284 # check capabilities of OpenGL and Webcam
285         cp -pP util/check-gl$(EXESUF) $(DIBS_COMMON_DIR)/bin
286         cp -pP util/check-cam$(EXESUF) $(DIBS_COMMON_DIR)/bin
287
288
289 # Enable HW Virtualization on Linux
290 ifdef CONFIG_LINUX
291         echo "Copying tizen-kvm to $(DIBS_X86_DIR)/etc"
292         cp -pP ../distrib/initscript/tizen-kvm $(DIBS_X86_DIR)/etc
293         cp -pP ../distrib/initscript/45-tizen-kvm.rules $(DIBS_X86_DIR)/etc
294 endif
295
296 # check HW Virtualization on Windows and MAC OS X.
297 ifndef CONFIG_LINUX
298         cp -pP util/check-hax$(EXESUF) $(DIBS_COMMON_DIR)/bin
299 endif
300
301 # give a title name for sdb terminal.
302 ifdef CONFIG_DARWIN
303         cp -pP scripts/sdbscript $(DIBS_COMMON_DIR)/bin
304 endif
305
306 # use shared memory for display framebuffer
307 ifdef CONFIG_USE_SHM
308 ifdef CONFIG_LINUX
309         cp -pP skin/client/native_src/libshared.so $(DIBS_COMMON_DIR)/bin
310 endif
311 ifdef CONFIG_DARWIN
312         cp -pP skin/client/native_src/libshared.dylib $(DIBS_COMMON_DIR)/bin
313 endif
314 endif
315
316 # use GTK for CopyToClipboard on Ubuntu 12.04 64bit
317 ifdef CONFIG_LINUX
318         cp -pP skin/client/native_src/clipboard.py $(DIBS_COMMON_DIR)/bin
319 endif
320
321 # change loading path of dynamic shared libraries on MAC OS X
322 ifdef CONFIG_DARWIN
323         install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
324         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
325         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
326         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
327         install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
328         install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
329         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/check-gl
330         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_COMMON_DIR)/bin/check-gl
331         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_COMMON_DIR)/bin/check-gl
332
333         @for target in $(TARGET_DIRS); do \
334         case "$$target" in \
335         i386-softmmu) \
336                 install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
337                 install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
338                 install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
339                 install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
340                 install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
341                 install_name_tool -change /opt/local/lib/libncurses.5.dylib @loader_path/libncurses.5.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
342                 install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
343                 install_name_tool -change /opt/local/lib/libpixman-1.0.dylib @loader_path/libpixman-1.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
344                 install_name_tool -change /opt/local/lib/libpng16.16.dylib @loader_path/libpng16.dylib $(DIBS_X86_DIR)/bin/emulator-x86; \
345                 ;; \
346         arm-softmmu) \
347                 ;; \
348         esac; \
349         done
350 endif
351
352 else
353 all:
354         @echo "Please call configure before running make!"
355         @exit 1
356 endif