]> git.proxmox.com Git - qemu.git/blame - Makefile
commit to specific devices
[qemu.git] / Makefile
CommitLineData
0cb3fb1e
PB
1# Makefile for QEMU.
2
ad064840 3include config-host.mak
766a487a 4
0cb3fb1e
PB
5.PHONY: all clean distclean dvi info install install-doc tar tarbin \
6 speed test test2 html dvi info
7
ad064840 8CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I.
83fb7adf
FB
9ifdef CONFIG_DARWIN
10CFLAGS+= -mdynamic-no-pic
11endif
fdbb4691
FB
12ifeq ($(ARCH),sparc)
13CFLAGS+=-mcpu=ultrasparc
14endif
31e31b8a 15LDFLAGS=-g
766a487a 16LIBS=
d5249393 17DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
e35c55fe 18TOOLS=qemu-img$(EXESUF)
1f50f8d1
FB
19ifdef CONFIG_STATIC
20LDFLAGS+=-static
21endif
cc8ae6de 22ifdef BUILD_DOCS
acd935ef 23DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
cc8ae6de
PB
24else
25DOCS=
26endif
aa05ae6f 27
b9dea4fb
PB
28all: $(TOOLS) $(DOCS) recurse-all
29
4aa42531
PB
30subdir-%: dyngen$(EXESUF)
31 $(MAKE) -C $(subst subdir-,,$@) all
32
33recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
34
de167e41 35qemu-img$(EXESUF): qemu-img.c block.c block-cow.c block-qcow.c aes.c block-vmdk.c block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c
b932caba 36 $(CC) -DQEMU_TOOL $(CFLAGS) $(LDFLAGS) $(DEFINES) -o $@ $^ -lz $(LIBS)
47cea614 37
11d9f695
FB
38dyngen$(EXESUF): dyngen.c
39 $(HOST_CC) $(CFLAGS) $(DEFINES) -o $@ $^
31e31b8a
FB
40
41clean:
2d80ae89
FB
42# avoid old build problems by removing potentially incorrect old files
43 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
acd935ef 44 rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS *.pod *~ */*~
7d3505c5 45 $(MAKE) -C tests clean
626df76a 46 for d in $(TARGET_DIRS); do \
7d3505c5 47 $(MAKE) -C $$d $@ || exit 1 ; \
626df76a 48 done
31e31b8a 49
7d13299d 50distclean: clean
cc8ae6de 51 rm -f config-host.mak config-host.h $(DOCS)
0cb3fb1e 52 rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr}
76bc6838 53 for d in $(TARGET_DIRS); do \
bc1b050d 54 rm -rf $$d || exit 1 ; \
76bc6838 55 done
7d13299d 56
fed4a9ad
FB
57KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \
58ar de en-us fi fr-be hr it lv nl pl ru th \
59common de-ch es fo fr-ca hu ja mk nl-be pt sl tr
60
38954dca
PB
61install-doc: $(DOCS)
62 mkdir -p "$(DESTDIR)$(docdir)"
63 $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
64ifndef CONFIG_WIN32
65 mkdir -p "$(DESTDIR)$(mandir)/man1"
66 $(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
67endif
68
69install: all $(if $(BUILD_DOCS),install-doc)
1236cab7 70 mkdir -p "$(DESTDIR)$(bindir)"
6a882643 71 $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
1236cab7 72 mkdir -p "$(DESTDIR)$(datadir)"
ad064840 73 for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
0986ac3b 74 video.x openbios-sparc32 linux_boot.bin; do \
6a882643 75 $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
ad064840 76 done
11d9f695 77ifndef CONFIG_WIN32
1236cab7 78 mkdir -p "$(DESTDIR)$(datadir)/keymaps"
ad064840 79 for x in $(KEYMAPS); do \
6a882643 80 $(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
ad064840 81 done
11d9f695 82endif
626df76a 83 for d in $(TARGET_DIRS); do \
7d3505c5 84 $(MAKE) -C $$d $@ || exit 1 ; \
626df76a 85 done
612384d7 86
367e86e8 87# various test targets
82c7e2a4 88test speed test2: all
7d3505c5 89 $(MAKE) -C tests $@
31e31b8a 90
367e86e8 91TAGS:
b9adb4a6 92 etags *.[ch] tests/*.[ch]
31e31b8a 93
6688bc6d
FB
94cscope:
95 rm -f ./cscope.*
96 find . -name "*.[ch]" -print > ./cscope.files
97 cscope -b
98
3ef693a0 99# documentation
1f673135 100%.html: %.texi
3ef693a0
FB
101 texi2html -monolithic -number $<
102
f3548328
FB
103%.info: %.texi
104 makeinfo $< -o $@
105
106%.dvi: %.texi
107 texi2dvi $<
108
5a67135a 109qemu.1: qemu-doc.texi
ad064840 110 $(SRC_PATH)/texi2pod.pl $< qemu.pod
5a67135a
FB
111 pod2man --section=1 --center=" " --release=" " qemu.pod > $@
112
acd935ef 113qemu-img.1: qemu-img.texi
ad064840 114 $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
acd935ef
FB
115 pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
116
0cb3fb1e
PB
117info: qemu-doc.info qemu-tech.info
118
119dvi: qemu-doc.dvi qemu-tech.dvi
120
121html: qemu-doc.html qemu-tech.html
122
1e43adfc 123FILE=qemu-$(shell cat VERSION)
586314f2 124
1e43adfc 125# tar release (use 'make -k tar' on a checkouted tree)
586314f2
FB
126tar:
127 rm -rf /tmp/$(FILE)
1e43adfc 128 cp -r . /tmp/$(FILE)
76b62fd0 129 ( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS )
586314f2
FB
130 rm -rf /tmp/$(FILE)
131
76b62fd0 132# generate a binary distribution
d691f669 133tarbin:
76b62fd0 134 ( cd / ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
43095f31 135 $(bindir)/qemu \
7efa4387 136 $(bindir)/qemu-system-ppc \
acd935ef 137 $(bindir)/qemu-system-sparc \
43095f31 138 $(bindir)/qemu-system-x86_64 \
93856aac 139 $(bindir)/qemu-system-mips \
38260998 140 $(bindir)/qemu-system-mipsel \
ea31eb5b 141 $(bindir)/qemu-system-arm \
7efa4387
FB
142 $(bindir)/qemu-i386 \
143 $(bindir)/qemu-arm \
ea31eb5b 144 $(bindir)/qemu-armeb \
7efa4387
FB
145 $(bindir)/qemu-sparc \
146 $(bindir)/qemu-ppc \
ea31eb5b
FB
147 $(bindir)/qemu-mips \
148 $(bindir)/qemu-mipsel \
b932caba 149 $(bindir)/qemu-img \
7efa4387
FB
150 $(datadir)/bios.bin \
151 $(datadir)/vgabios.bin \
de9258a8 152 $(datadir)/vgabios-cirrus.bin \
637f6cd7 153 $(datadir)/ppc_rom.bin \
d5295253 154 $(datadir)/video.x \
0986ac3b 155 $(datadir)/openbios-sparc32 \
7efa4387 156 $(datadir)/linux_boot.bin \
1f50f8d1
FB
157 $(docdir)/qemu-doc.html \
158 $(docdir)/qemu-tech.html \
acd935ef 159 $(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
d691f669 160
31e31b8a
FB
161ifneq ($(wildcard .depend),)
162include .depend
163endif