Merge branch 'tizen_qemu_2.0' into tizen
[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
6 ifndef TIZEN_SDK_DEV_PATH
7 TIZEN_SDK_DEV_PATH=${HOME}/tizen-sdk-dev
8 endif
9
10 ifneq ($(wildcard ../../config-host.mak),)
11 include ../../config-host.mak
12 else
13 config-host.mak:
14         @echo "Please call configure before running make!"
15         @exit 1
16 endif
17
18 ifdef CONFIG_WIN32
19 EXECUTABLE_EXTENSION=.exe
20 else
21 EXECUTABLE_EXTENSION=
22 endif
23
24 all: qemu skin_client
25 qemu: build_info check_hax check_cam
26         cd ../../ && $(MAKE)
27 qemu_clean:
28         cd ../../ && $(MAKE) clean
29
30 qemu_distclean:
31         cd ../../ && $(MAKE) distclean
32
33 check_hax:
34         @echo "build check hax" 
35 ifdef CONFIG_WIN32
36         $(CC) -o check-hax.exe check_hax.c      
37 endif
38 ifdef CONFIG_DARWIN
39         $(CC) -mmacosx-version-min=10.4 -o check-hax check_hax.c        
40 endif
41
42 check_cam:
43         @echo "build check cam"
44 ifdef CONFIG_LINUX
45         $(CC) -o check-cam check_cam.c -lv4l2 -lv4lconvert
46 endif
47 ifdef CONFIG_WIN32
48         $(CC) -o check-cam.exe check_cam.c -lole32 -loleaut32 -luuid -lstrmiids
49 endif
50 ifdef CONFIG_DARWIN
51         $(CC) -o check-cam check_cam.c
52 endif
53
54 skin_client:
55         TIZEN_SDK_DEV_PATH=${TIZEN_SDK_DEV_PATH} ant -buildfile skin/client/build.xml make-jar
56
57 build_info:
58         @echo "Generate a build information file"
59         @echo "/* Automatically generated by Makefile - do not modify! */" > build_info.h
60         @echo "const char build_version[] = \"`cat VERSION`\";" >> build_info.h
61         @echo "const char build_date[] = \"`date +"%F %T %Z"`\";" >> build_info.h
62         @echo "const char pkginfo_version[] = \"`sed -n '1p' ./../../package/pkginfo.manifest | sed 's/\"//g'`\";" >> build_info.h
63         @echo "const char pkginfo_maintainer[] = \"`sed -n '2p' ./../../package/pkginfo.manifest | sed 's/\"//g'`\";" >> build_info.h
64         @echo "const char pkginfo_githead[] = \"`git rev-parse HEAD`\";" >> build_info.h
65         @echo "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
66
67
68 clean: qemu_clean
69 ifndef CONFIG_LINUX
70         rm -f check-hax$(EXECUTABLE_EXTENSION) check-cam$(EXECUTABLE_EXTENSION)
71 else
72         rm -f check-cam
73 endif
74 distclean: clean qemu_distclean
75
76 install: all
77         mkdir -p $(EMUL_DIR)/bin
78         mkdir -p $(EMUL_DIR)/etc
79         mkdir -p $(EMUL_DIR)/data
80         mkdir -p $(EMUL_DIR)/images
81
82         @for target in $(TARGET_DIRS); do \
83         case "$$target" in \
84         i386-softmmu) \
85                 mkdir -p $(EMUL_DIR)/data/bios ;\
86                 echo "Copying i386-softmmu/qemu-system-i386$(EXECUTABLE_EXTENSION) to $(EMUL_DIR)/bin/emulator-x86$(EXECUTABLE_EXTENSION)" ;\
87                 cp -pP ../../i386-softmmu/qemu-system-i386$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin/emulator-x86$(EXECUTABLE_EXTENSION) ;\
88                 echo "Copying bioses to $(EMUL_DIR)/data/bios" ;\
89                 cp -pP ../../pc-bios/bios-256k.bin $(EMUL_DIR)/data/bios ;\
90                 cp -pP ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios ;\
91                 cp -pP ../../pc-bios/efi-virtio.rom $(EMUL_DIR)/data/bios ;\
92                 cp -pP ../../pc-bios/acpi-dsdt.aml $(EMUL_DIR)/data/bios ;\
93                 ;; \
94         arm-softmmu) \
95                 echo "Copying arm-softmmu/qemu-system-arm$(EXECUTABLE_EXTENSION) to $(EMUL_DIR)/bin/emulator-arm$(EXECUTABLE_EXTENSION)" ;\
96                 cp -pP ../../arm-softmmu/qemu-system-arm$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin/emulator-arm$(EXECUTABLE_EXTENSION) ;\
97                 ;; \
98         esac; \
99         done
100
101         cp -pP ../../qemu-img$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin
102
103 # resources and jar for skin
104         cp -pP skin/client/emulator-skin.jar $(EMUL_DIR)/bin
105         cp -pPR skin/client/skins $(EMUL_DIR)
106 ifndef CONFIG_USE_SHM
107         cp -pP skin/client/resource/images/blank-guide.png $(EMUL_DIR)/images
108 endif
109
110 # check capabilities of OpenGL and Webcam
111         cp -pP ../../i386-softmmu/check-gl$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin
112         cp -pP check-cam$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin
113
114 # Enable HW Virtualization on Linux
115 ifdef CONFIG_LINUX
116         cp -pP ../distrib/initscript/tizen-kvm $(EMUL_DIR)/etc
117         cp -pP ../distrib/initscript/45-tizen-kvm.rules $(EMUL_DIR)/etc
118 endif
119
120 # check HW Virtualization on Windows and MAC OS X.
121 ifndef CONFIG_LINUX
122         cp -pP check-hax$(EXECUTABLE_EXTENSION) $(EMUL_DIR)/bin
123 endif
124
125 # give a title name for sdb terminal.
126 ifdef CONFIG_DARWIN
127         cp -pP sdbscript $(EMUL_DIR)/bin
128 endif
129
130 # use shared memory for display framebuffer
131 ifdef CONFIG_USE_SHM
132 ifdef CONFIG_LINUX
133         cp -pP skin/client/native_src/libshared.so $(EMUL_DIR)/bin
134 endif
135 ifdef CONFIG_DARWIN
136         cp -pP skin/client/native_src/libshared.dylib $(EMUL_DIR)/bin
137 endif
138 endif
139
140 # use GTK for CopyToClipboard on Ubuntu 12.04 64bit
141 ifdef CONFIG_LINUX
142         cp -pP skin/client/native_src/clipboard.py $(EMUL_DIR)/bin
143 endif
144
145 # change loading path of dynamic shared libraries on MAC OS X
146 ifdef CONFIG_DARWIN
147         install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(EMUL_DIR)/bin/qemu-img
148         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/qemu-img
149         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/qemu-img
150         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/qemu-img
151         install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(EMUL_DIR)/bin/qemu-img
152         install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(EMUL_DIR)/bin/qemu-img
153         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/check-gl
154         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/check-gl
155         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/check-gl
156
157         @for target in $(TARGET_DIRS); do \
158         case "$$target" in \
159         i386-softmmu) \
160                 install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
161                 install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
162                 install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
163                 install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
164                 install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
165                 install_name_tool -change /opt/local/lib/libncurses.5.dylib @loader_path/libncurses.5.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
166                 install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
167                 install_name_tool -change /opt/local/lib/libpixman-1.0.dylib @loader_path/libpixman-1.0.dylib $(EMUL_DIR)/bin/emulator-x86 ;\
168                 ;; \
169         arm-softmmu) \
170                 ;; \
171         esac; \
172         done
173 endif
174
175 # for dibs system...
176 all_dibs: qemu skin_client_dibs
177 skin_client_dibs:
178         ant -buildfile skin/client/build.xml -Dclasspath.dibs=$(ROOTDIR)/tools/emulator/bin make-jar-dibs
179 install_dibs: all_dibs
180         mkdir -p $(DIBS_COMMON_DIR)/bin
181         mkdir -p $(DIBS_COMMON_DIR)/etc
182         mkdir -p $(DIBS_COMMON_DIR)/images
183         mkdir -p $(DIBS_X86_DIR)/bin
184         mkdir -p $(DIBS_X86_DIR)/data
185         mkdir -p $(DIBS_X86_DIR)/etc
186         mkdir -p $(DIBS_ARM_DIR)/bin
187         @for target in $(TARGET_DIRS); do \
188         case "$$target" in \
189         i386-softmmu) \
190                 mkdir -p $(DIBS_X86_DIR)/data/bios ;\
191                 echo "Copying i386-softmmu/qemu-system-i386$(EXECUTABLE_EXTENSION) to $(DIBS_X86__DIR)/bin/emulator-x86$(EXECUTABLE_EXTENSION)" ;\
192                 cp ../../i386-softmmu/qemu-system-i386$(EXECUTABLE_EXTENSION) $(DIBS_X86_DIR)/bin/emulator-x86$(EXECUTABLE_EXTENSION) ;\
193                 echo "Copying bioses to $(DIBS_X86_DIR)/data/bios" ;\
194                 cp -pP ../../pc-bios/bios-256k.bin $(DIBS_X86_DIR)/data/bios ;\
195                 cp -pP ../../pc-bios/linuxboot.bin $(DIBS_X86_DIR)/data/bios ;\
196                 cp -pP ../../pc-bios/efi-virtio.rom $(DIBS_X86_DIR)/data/bios ;\
197                 cp -pP ../../pc-bios/acpi-dsdt.aml $(DIBS_X86_DIR)/data/bios ;\
198                 ;; \
199         arm-softmmu) \
200                 echo "Copying arm-softmmu/qemu-system-arm$(EXECUTABLE_EXTENSION) to $(DIBS_ARM_DIR)/bin/emulator-arm$(EXECUTABLE_EXTENSION)" ;\
201                 cp -pP ../../arm-softmmu/qemu-system-arm$(EXECUTABLE_EXTENSION) $(DIBS_ARM_DIR)/bin/emulator-arm$(EXECUTABLE_EXTENSION) ;\
202                 ;; \
203         esac; \
204         done
205
206         cp -pP ../../qemu-img$(EXECUTABLE_EXTENSION) $(DIBS_COMMON_DIR)/bin
207
208 # resources and jar for skin
209         cp -pP skin/client/emulator-skin.jar $(DIBS_COMMON_DIR)/bin
210         #cp -pPR skin/client/skins $(DIBS_COMMON_DIR)
211 ifndef CONFIG_USE_SHM
212         cp -pP skin/client/resource/images/blank-guide.png $(DIBS_COMMON_DIR)/images
213 endif
214
215 # check capabilities of OpenGL and Webcam
216         cp -pP ../../i386-softmmu/check-gl$(EXECUTABLE_EXTENSION) $(DIBS_COMMON_DIR)/bin
217         cp -pP check-cam$(EXECUTABLE_EXTENSION) $(DIBS_COMMON_DIR)/bin
218
219
220 # Enable HW Virtualization on Linux
221 ifdef CONFIG_LINUX
222         echo "Copying tizen-kvm to $(DIBS_X86_DIR)/etc"
223         cp -pP ../distrib/initscript/tizen-kvm $(DIBS_X86_DIR)/etc
224         cp -pP ../distrib/initscript/45-tizen-kvm.rules $(DIBS_X86_DIR)/etc
225 endif
226
227 # check HW Virtualization on Windows and MAC OS X.
228 ifndef CONFIG_LINUX
229         cp -pP check-hax$(EXECUTABLE_EXTENSION) $(DIBS_COMMON_DIR)/bin
230 endif
231
232 # give a title name for sdb terminal.
233 ifdef CONFIG_DARWIN
234         cp -pP sdbscript $(DIBS_COMMON_DIR)/bin
235 endif
236
237 # use shared memory for display framebuffer
238 ifdef CONFIG_USE_SHM
239 ifdef CONFIG_LINUX
240         cp -pP skin/client/native_src/libshared.so $(DIBS_COMMON_DIR)/bin
241 endif
242 ifdef CONFIG_DARWIN
243         cp -pP skin/client/native_src/libshared.dylib $(DIBS_COMMON_DIR)/bin
244 endif
245 endif
246
247 # use GTK for CopyToClipboard on Ubuntu 12.04 64bit
248 ifdef CONFIG_LINUX
249         cp -pP skin/client/native_src/clipboard.py $(DIBS_COMMON_DIR)/bin
250 endif
251
252 # change loading path of dynamic shared libraries on MAC OS X
253 ifdef CONFIG_DARWIN
254         install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
255         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
256         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
257         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
258         install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
259         install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(DIBS_COMMON_DIR)/bin/qemu-img
260         install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_COMMON_DIR)/bin/check-gl
261         install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_COMMON_DIR)/bin/check-gl
262         install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_COMMON_DIR)/bin/check-gl
263
264         @for target in $(TARGET_DIRS); do \
265         case "$$target" in \
266         i386-softmmu) \
267                 install_name_tool -change /opt/local/lib/libgthread-2.0.*.dylib @loader_path/libgthread-2.0.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
268                 install_name_tool -change /opt/local/lib/libglib-2.0.*.dylib @loader_path/libglib-2.0.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
269                 install_name_tool -change /opt/local/lib/libintl.8.dylib @loader_path/libintl.8.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
270                 install_name_tool -change /opt/local/lib/gcc47/libgcc_s.1.dylib @loader_path/libgcc_s.1.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
271                 install_name_tool -change /opt/local/lib/libz.1.dylib @loader_path/libz.1.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
272                 install_name_tool -change /opt/local/lib/libncurses.5.dylib @loader_path/libncurses.5.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
273                 install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
274                 install_name_tool -change /opt/local/lib/libpixman-1.0.dylib @loader_path/libpixman-1.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\
275                 ;; \
276         arm-softmmu) \
277                 ;; \
278         esac; \
279         done
280 endif