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