1
3
include config-host.mak
5
.PHONY: all clean distclean dvi info install install-doc tar tarbin \
6
speed test html dvi info
8
VPATH=$(SRC_PATH):$(SRC_PATH)/hw
13
BASE_CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS)
14
BASE_LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS)
16
CPPFLAGS += -I. -I$(SRC_PATH) -MMD -MP
17
CPPFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
13
19
ifdef CONFIG_STATIC
17
all: dyngen$(EXESUF) $(TOOLS) qemu-doc.html qemu-tech.html qemu.1
18
for d in $(TARGET_DIRS); do \
19
make -C $$d $@ || exit 1 ; \
22
qemu-mkcow: qemu-mkcow.c
23
$(CC) $(CFLAGS) $(LDFLAGS) $(DEFINES) -o $@ $^ $(LIBS)
20
BASE_LDFLAGS += -static
23
DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
30
all: $(TOOLS) $(DOCS) recurse-all
32
subdir-%: dyngen$(EXESUF) libqemu_common.a
33
$(MAKE) -C $(subst subdir-,,$@) all
35
recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
37
#######################################################################
38
# BLOCK_OBJS is code used by both qemu system emulation and qemu-img
41
BLOCK_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o
42
BLOCK_OBJS+=block-dmg.o block-bochs.o block-vpc.o block-vvfat.o
43
BLOCK_OBJS+=block-qcow2.o block-parallels.o
45
######################################################################
46
# libqemu_common.a: Target indepedent part of system emulation. The
47
# long term path is to suppress *all* target specific code in case of
48
# system emulation, i.e. a single QEMU executable should support all
52
OBJS+=readline.o console.o
56
OBJS+=i2c.o smbus.o smbus_eeprom.o max7310.o max111x.o wm8750.o
57
OBJS+=ssd0303.o ssd0323.o ads7846.o stellaris_input.o
58
OBJS+=scsi-disk.o cdrom.o
60
OBJS+=usb.o usb-hub.o usb-linux.o usb-hid.o usb-msd.o usb-wacom.o
67
AUDIO_OBJS = audio.o noaudio.o wavaudio.o mixeng.o
69
AUDIO_OBJS += sdlaudio.o
72
AUDIO_OBJS += ossaudio.o
74
ifdef CONFIG_COREAUDIO
75
AUDIO_OBJS += coreaudio.o
78
AUDIO_OBJS += alsaaudio.o
81
AUDIO_OBJS += dsoundaudio.o
84
AUDIO_OBJS += fmodaudio.o
85
audio/audio.o audio/fmodaudio.o: CPPFLAGS := -I$(CONFIG_FMOD_INC) $(CPPFLAGS)
87
AUDIO_OBJS+= wavcapture.o
88
OBJS+=$(addprefix audio/, $(AUDIO_OBJS))
91
OBJS+=sdl.o x_keymap.o
100
CPPFLAGS+=-I$(SRC_PATH)/slirp
101
SLIRP_OBJS=cksum.o if.o ip_icmp.o ip_input.o ip_output.o \
102
slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o \
103
tcp_subr.o tcp_timer.o udp.o bootp.o debug.o tftp.o
104
OBJS+=$(addprefix slirp/, $(SLIRP_OBJS))
108
$(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
110
sdl.o: sdl.c keymaps.c sdl_keysym.h
111
$(CC) $(CFLAGS) $(CPPFLAGS) $(SDL_CFLAGS) $(BASE_CFLAGS) -c -o $@ $<
113
vnc.o: vnc.c keymaps.c sdl_keysym.h vnchextile.h d3des.c d3des.h
114
$(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $(CONFIG_VNC_TLS_CFLAGS) -c -o $@ $<
116
audio/sdlaudio.o: audio/sdlaudio.c
117
$(CC) $(CFLAGS) $(CPPFLAGS) $(SDL_CFLAGS) $(BASE_CFLAGS) -c -o $@ $<
119
libqemu_common.a: $(OBJS)
123
QEMU_IMG_BLOCK_OBJS = $(BLOCK_OBJS)
125
QEMU_IMG_BLOCK_OBJS += qemu-img-block-raw-win32.o
127
QEMU_IMG_BLOCK_OBJS += qemu-img-block-raw-posix.o
130
######################################################################
132
qemu-img$(EXESUF): qemu-img.o qemu-img-block.o $(QEMU_IMG_BLOCK_OBJS)
133
$(CC) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ -lz $(LIBS)
136
$(CC) $(CFLAGS) $(CPPFLAGS) -DQEMU_IMG $(BASE_CFLAGS) -c -o $@ $<
139
$(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
25
142
dyngen$(EXESUF): dyngen.c
26
$(HOST_CC) $(CFLAGS) $(DEFINES) -o $@ $^
143
$(HOST_CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -o $@ $^
29
146
# avoid old build problems by removing potentially incorrect old files
30
rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
31
rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS qemu.pod
147
rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
148
rm -f *.o *.d *.a $(TOOLS) dyngen$(EXESUF) TAGS cscope.* *.pod *~ */*~
149
rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d
150
$(MAKE) -C tests clean
33
151
for d in $(TARGET_DIRS); do \
34
make -C $$d $@ || exit 1 ; \
152
$(MAKE) -C $$d $@ || exit 1 ; \
38
rm -f config-host.mak config-host.h
156
rm -f config-host.mak config-host.h $(DOCS)
157
rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr}
39
158
for d in $(TARGET_DIRS); do \
40
159
rm -rf $$d || exit 1 ; \
46
install -m 755 -s $(TOOLS) "$(bindir)"
48
mkdir -p "$(sharedir)"
49
install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \
50
pc-bios/linux_boot.bin "$(sharedir)"
52
install -m 644 qemu-doc.html qemu-tech.html "$(docdir)"
54
mkdir -p "$(mandir)/man1"
55
install qemu.1 qemu-mkcow.1 "$(mandir)/man1"
162
KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \
163
ar de en-us fi fr-be hr it lv nl pl ru th \
164
common de-ch es fo fr-ca hu ja mk nl-be pt sl tr
167
mkdir -p "$(DESTDIR)$(docdir)"
168
$(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
170
mkdir -p "$(DESTDIR)$(mandir)/man1"
171
$(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
174
install: all $(if $(BUILD_DOCS),install-doc)
175
mkdir -p "$(DESTDIR)$(bindir)"
177
$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
179
mkdir -p "$(DESTDIR)$(datadir)"
180
for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
181
video.x openbios-sparc32 pxe-ne2k_pci.bin \
182
pxe-rtl8139.bin pxe-pcnet.bin; do \
183
$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
186
mkdir -p "$(DESTDIR)$(datadir)/keymaps"
187
for x in $(KEYMAPS); do \
188
$(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
57
191
for d in $(TARGET_DIRS); do \
58
make -C $$d $@ || exit 1 ; \
192
$(MAKE) -C $$d $@ || exit 1 ; \
61
195
# various test targets
66
200
etags *.[ch] tests/*.[ch]
204
find . -name "*.[ch]" -print > ./cscope.files
70
209
texi2html -monolithic -number $<
72
217
qemu.1: qemu-doc.texi
73
./texi2pod.pl $< qemu.pod
218
$(SRC_PATH)/texi2pod.pl $< qemu.pod
74
219
pod2man --section=1 --center=" " --release=" " qemu.pod > $@
76
FILE=qemu-$(shell cat VERSION)
221
qemu-img.1: qemu-img.texi
222
$(SRC_PATH)/texi2pod.pl $< qemu-img.pod
223
pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
225
info: qemu-doc.info qemu-tech.info
227
dvi: qemu-doc.dvi qemu-tech.dvi
229
html: qemu-doc.html qemu-tech.html
231
VERSION ?= $(shell cat VERSION)
232
FILE = qemu-$(VERSION)
78
234
# tar release (use 'make -k tar' on a checkouted tree)
85
241
# generate a binary distribution
87
( cd / ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
88
$(prefix)/bin/qemu $(prefix)/bin/qemu-fast \
89
$(prefix)/bin/qemu-system-ppc \
90
$(prefix)/bin/qemu-i386 \
91
$(prefix)/bin/qemu-arm \
92
$(prefix)/bin/qemu-sparc \
93
$(prefix)/bin/qemu-ppc \
94
$(prefix)/bin/qemu-mkcow \
95
$(sharedir)/bios.bin \
96
$(sharedir)/vgabios.bin \
97
$(sharedir)/linux_boot.bin \
243
( cd / ; tar zcvf ~/qemu-$(VERSION)-$(ARCH).tar.gz \
245
$(bindir)/qemu-system-ppc \
246
$(bindir)/qemu-system-ppc64 \
247
$(bindir)/qemu-system-ppcemb \
248
$(bindir)/qemu-system-sparc \
249
$(bindir)/qemu-system-x86_64 \
250
$(bindir)/qemu-system-mips \
251
$(bindir)/qemu-system-mipsel \
252
$(bindir)/qemu-system-mips64 \
253
$(bindir)/qemu-system-mips64el \
254
$(bindir)/qemu-system-arm \
255
$(bindir)/qemu-system-m68k \
256
$(bindir)/qemu-system-sh4 \
257
$(bindir)/qemu-system-sh4eb \
258
$(bindir)/qemu-system-cris \
259
$(bindir)/qemu-i386 \
260
$(bindir)/qemu-x86_64 \
262
$(bindir)/qemu-armeb \
263
$(bindir)/qemu-sparc \
264
$(bindir)/qemu-sparc32plus \
265
$(bindir)/qemu-sparc64 \
267
$(bindir)/qemu-ppc64 \
268
$(bindir)/qemu-ppc64abi32 \
269
$(bindir)/qemu-mips \
270
$(bindir)/qemu-mipsel \
271
$(bindir)/qemu-alpha \
272
$(bindir)/qemu-m68k \
274
$(bindir)/qemu-sh4eb \
275
$(bindir)/qemu-cris \
277
$(datadir)/bios.bin \
278
$(datadir)/vgabios.bin \
279
$(datadir)/vgabios-cirrus.bin \
280
$(datadir)/ppc_rom.bin \
282
$(datadir)/openbios-sparc32 \
283
$(datadir)/pxe-ne2k_pci.bin \
284
$(datadir)/pxe-rtl8139.bin \
285
$(datadir)/pxe-pcnet.bin \
98
286
$(docdir)/qemu-doc.html \
99
287
$(docdir)/qemu-tech.html \
100
$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-mkcow.1 )
288
$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
102
290
ifneq ($(wildcard .depend),)
294
# Include automatically generated dependency files
295
-include $(wildcard *.d audio/*.d slirp/*.d)