pbrook | 0cb3fb1 | 2006-05-14 12:07:53 +0000 | [diff] [blame] | 1 | # Makefile for QEMU. |
| 2 | |
Michael S. Tsirkin | df2943b | 2010-10-26 17:53:41 +0200 | [diff] [blame] | 3 | GENERATED_HEADERS = config-host.h trace.h qemu-options.def |
Daniel P. Berrange | b3d08c0 | 2010-11-12 13:20:24 +0000 | [diff] [blame^] | 4 | ifeq ($(TRACE_BACKEND),dtrace) |
| 5 | GENERATED_HEADERS += trace-dtrace.h |
| 6 | endif |
Juan Quintela | f527c57 | 2009-11-05 17:19:57 +0100 | [diff] [blame] | 7 | |
aurel32 | 55d7e8f | 2009-04-15 14:42:57 +0000 | [diff] [blame] | 8 | ifneq ($(wildcard config-host.mak),) |
Paul Brook | 1ad2134 | 2009-05-19 16:17:58 +0100 | [diff] [blame] | 9 | # Put the all: rule here so that config-host.mak can contain dependencies. |
| 10 | all: build-all |
pbrook | ad06484 | 2006-04-16 12:41:07 +0000 | [diff] [blame] | 11 | include config-host.mak |
aliguori | 1775918 | 2009-01-21 18:12:52 +0000 | [diff] [blame] | 12 | include $(SRC_PATH)/rules.mak |
Paolo Bonzini | 59bc10e | 2010-01-04 11:02:28 +0100 | [diff] [blame] | 13 | config-host.mak: $(SRC_PATH)/configure |
Juan Quintela | e5efe7f | 2009-10-07 02:40:59 +0200 | [diff] [blame] | 14 | @echo $@ is out-of-date, running configure |
| 15 | @sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh |
aurel32 | 55d7e8f | 2009-04-15 14:42:57 +0000 | [diff] [blame] | 16 | else |
| 17 | config-host.mak: |
| 18 | @echo "Please call configure before running make!" |
| 19 | @exit 1 |
| 20 | endif |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 21 | |
Juan Quintela | d9ace8b | 2009-10-06 21:11:15 +0200 | [diff] [blame] | 22 | # Don't try to regenerate Makefile or configure |
| 23 | # We don't generate any of them |
| 24 | Makefile: ; |
| 25 | configure: ; |
| 26 | |
aliguori | 818220f | 2008-09-24 01:13:40 +0000 | [diff] [blame] | 27 | .PHONY: all clean cscope distclean dvi html info install install-doc \ |
Stefan Weil | 20cc999 | 2010-01-29 23:16:50 +0100 | [diff] [blame] | 28 | pdf recurse-all speed tar tarbin test build-all |
pbrook | 0cb3fb1 | 2006-05-14 12:07:53 +0000 | [diff] [blame] | 29 | |
Paolo Bonzini | 076d247 | 2009-12-21 10:06:55 +0100 | [diff] [blame] | 30 | $(call set-vpath, $(SRC_PATH):$(SRC_PATH)/hw) |
pbrook | 8c462f8 | 2007-11-18 21:12:37 +0000 | [diff] [blame] | 31 | |
Juan Quintela | 3e2e0e6 | 2009-08-03 14:47:06 +0200 | [diff] [blame] | 32 | LIBS+=-lz $(LIBS_TOOLS) |
Juan Quintela | 67c0f08 | 2009-07-27 16:12:51 +0200 | [diff] [blame] | 33 | |
pbrook | cc8ae6d | 2006-04-23 17:57:59 +0000 | [diff] [blame] | 34 | ifdef BUILD_DOCS |
Jan Kiszka | b40292e | 2010-05-31 14:43:31 -0300 | [diff] [blame] | 35 | DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 QMP/qmp-commands.txt |
pbrook | cc8ae6d | 2006-04-23 17:57:59 +0000 | [diff] [blame] | 36 | else |
| 37 | DOCS= |
| 38 | endif |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 39 | |
Juan Quintela | 1215c6e | 2009-10-07 02:40:58 +0200 | [diff] [blame] | 40 | SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory) |
Juan Quintela | 1f3d3c8 | 2009-10-07 02:41:02 +0200 | [diff] [blame] | 41 | SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS)) |
| 42 | |
| 43 | config-all-devices.mak: $(SUBDIR_DEVICES_MAK) |
Stefan Weil | 01d86a8 | 2009-11-19 20:19:56 +0100 | [diff] [blame] | 44 | $(call quiet-command,cat $(SUBDIR_DEVICES_MAK) | grep =y | sort -u > $@," GEN $@") |
Juan Quintela | 1f3d3c8 | 2009-10-07 02:41:02 +0200 | [diff] [blame] | 45 | |
Paul Brook | a992fe3 | 2009-11-22 16:25:30 +0000 | [diff] [blame] | 46 | %/config-devices.mak: default-configs/%.mak |
| 47 | $(call quiet-command,cat $< > $@.tmp, " GEN $@") |
Stefan Weil | 012f087 | 2009-12-20 15:39:03 +0100 | [diff] [blame] | 48 | @if test -f $@; then \ |
Blue Swirl | 904fe1f | 2010-10-02 14:28:08 +0000 | [diff] [blame] | 49 | if cmp -s $@.old $@; then \ |
| 50 | if ! cmp -s $@ $@.tmp; then \ |
| 51 | mv $@.tmp $@; \ |
| 52 | cp -p $@ $@.old; \ |
| 53 | fi; \ |
Stefan Weil | 012f087 | 2009-12-20 15:39:03 +0100 | [diff] [blame] | 54 | else \ |
| 55 | if test -f $@.old; then \ |
| 56 | echo "WARNING: $@ (user modified) out of date.";\ |
| 57 | else \ |
| 58 | echo "WARNING: $@ out of date.";\ |
| 59 | fi; \ |
| 60 | echo "Run \"make defconfig\" to regenerate."; \ |
| 61 | rm $@.tmp; \ |
| 62 | fi; \ |
Paul Brook | a992fe3 | 2009-11-22 16:25:30 +0000 | [diff] [blame] | 63 | else \ |
Stefan Weil | 012f087 | 2009-12-20 15:39:03 +0100 | [diff] [blame] | 64 | mv $@.tmp $@; \ |
| 65 | cp -p $@ $@.old; \ |
Paul Brook | a992fe3 | 2009-11-22 16:25:30 +0000 | [diff] [blame] | 66 | fi |
| 67 | |
| 68 | defconfig: |
| 69 | rm -f config-all-devices.mak $(SUBDIR_DEVICES_MAK) |
| 70 | |
Juan Quintela | 1f3d3c8 | 2009-10-07 02:41:02 +0200 | [diff] [blame] | 71 | -include config-all-devices.mak |
Juan Quintela | 1215c6e | 2009-10-07 02:40:58 +0200 | [diff] [blame] | 72 | |
Juan Quintela | f527c57 | 2009-11-05 17:19:57 +0100 | [diff] [blame] | 73 | build-all: $(DOCS) $(TOOLS) recurse-all |
pbrook | b9dea4f | 2006-05-13 16:54:03 +0000 | [diff] [blame] | 74 | |
Juan Quintela | 1215c6e | 2009-10-07 02:40:58 +0200 | [diff] [blame] | 75 | config-host.h: config-host.h-timestamp |
| 76 | config-host.h-timestamp: config-host.mak |
Blue Swirl | e14056a | 2010-11-01 18:09:38 +0000 | [diff] [blame] | 77 | qemu-options.def: $(SRC_PATH)/qemu-options.hx |
Michael S. Tsirkin | df2943b | 2010-10-26 17:53:41 +0200 | [diff] [blame] | 78 | $(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $@") |
Juan Quintela | 1215c6e | 2009-10-07 02:40:58 +0200 | [diff] [blame] | 79 | |
pbrook | cec7d0b | 2008-05-28 16:44:57 +0000 | [diff] [blame] | 80 | SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) |
| 81 | |
Juan Quintela | f527c57 | 2009-11-05 17:19:57 +0100 | [diff] [blame] | 82 | subdir-%: $(GENERATED_HEADERS) |
Paul Brook | 0087375 | 2009-05-07 02:00:31 +0100 | [diff] [blame] | 83 | $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,) |
pbrook | 4aa4253 | 2006-05-13 13:55:08 +0000 | [diff] [blame] | 84 | |
Stefan Weil | b88bc80 | 2010-01-14 18:11:43 +0100 | [diff] [blame] | 85 | ifneq ($(wildcard config-host.mak),) |
Andreas Färber | 0e8c921 | 2010-01-06 20:24:05 +0100 | [diff] [blame] | 86 | include $(SRC_PATH)/Makefile.objs |
Stefan Weil | b88bc80 | 2010-01-14 18:11:43 +0100 | [diff] [blame] | 87 | endif |
Andreas Färber | 0e8c921 | 2010-01-06 20:24:05 +0100 | [diff] [blame] | 88 | |
| 89 | $(common-obj-y): $(GENERATED_HEADERS) |
Andreas Färber | 91f1690 | 2010-09-12 17:21:36 +0200 | [diff] [blame] | 90 | $(filter %-softmmu,$(SUBDIR_RULES)): $(trace-obj-y) $(common-obj-y) subdir-libdis |
Paul Brook | c05ac89 | 2009-07-31 13:18:32 +0100 | [diff] [blame] | 91 | |
Andreas Färber | 91f1690 | 2010-09-12 17:21:36 +0200 | [diff] [blame] | 92 | $(filter %-user,$(SUBDIR_RULES)): $(GENERATED_HEADERS) $(trace-obj-y) subdir-libdis-user subdir-libuser |
Blue Swirl | add1615 | 2009-09-27 16:26:02 +0000 | [diff] [blame] | 93 | |
Paul Brook | c05ac89 | 2009-07-31 13:18:32 +0100 | [diff] [blame] | 94 | ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) |
| 95 | romsubdir-%: |
| 96 | $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pc-bios/$* V="$(V)" TARGET_DIR="$*/",) |
| 97 | |
| 98 | ALL_SUBDIRS=$(TARGET_DIRS) $(patsubst %,pc-bios/%, $(ROMS)) |
| 99 | |
| 100 | recurse-all: $(SUBDIR_RULES) $(ROMSUBDIR_RULES) |
bellard | 83f6409 | 2006-08-01 16:21:11 +0000 | [diff] [blame] | 101 | |
Juan Quintela | 98b068a | 2009-08-03 14:46:57 +0200 | [diff] [blame] | 102 | audio/audio.o audio/fmodaudio.o: QEMU_CFLAGS += $(FMOD_CFLAGS) |
Juan Quintela | 0e22fd2 | 2009-06-25 00:08:09 +0200 | [diff] [blame] | 103 | |
Juan Quintela | a558ee1 | 2009-08-03 14:46:21 +0200 | [diff] [blame] | 104 | QEMU_CFLAGS+=$(CURL_CFLAGS) |
Alexander Graf | 769ce76 | 2009-05-11 17:41:42 +0200 | [diff] [blame] | 105 | |
Corentin Chary | 3e230dd | 2010-07-07 20:57:52 +0200 | [diff] [blame] | 106 | ui/cocoa.o: ui/cocoa.m |
bellard | 4fb240a | 2007-11-07 19:24:02 +0000 | [diff] [blame] | 107 | |
Corentin Chary | 3e230dd | 2010-07-07 20:57:52 +0200 | [diff] [blame] | 108 | ui/sdl.o audio/sdlaudio.o ui/sdl_zoom.o baum.o: QEMU_CFLAGS += $(SDL_CFLAGS) |
aliguori | 0483755 | 2009-03-06 20:27:10 +0000 | [diff] [blame] | 109 | |
Corentin Chary | 3e230dd | 2010-07-07 20:57:52 +0200 | [diff] [blame] | 110 | ui/vnc.o: QEMU_CFLAGS += $(VNC_TLS_CFLAGS) |
balrog | 4d3b6f6 | 2008-02-10 16:33:14 +0000 | [diff] [blame] | 111 | |
Juan Quintela | a558ee1 | 2009-08-03 14:46:21 +0200 | [diff] [blame] | 112 | bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS) |
bellard | 4fb240a | 2007-11-07 19:24:02 +0000 | [diff] [blame] | 113 | |
Daniel P. Berrange | b3d08c0 | 2010-11-12 13:20:24 +0000 | [diff] [blame^] | 114 | ifeq ($(TRACE_BACKEND),dtrace) |
| 115 | trace.h: trace.h-timestamp trace-dtrace.h |
| 116 | else |
Blue Swirl | a82cdd5 | 2010-10-02 14:28:12 +0000 | [diff] [blame] | 117 | trace.h: trace.h-timestamp |
Daniel P. Berrange | b3d08c0 | 2010-11-12 13:20:24 +0000 | [diff] [blame^] | 118 | endif |
Blue Swirl | a82cdd5 | 2010-10-02 14:28:12 +0000 | [diff] [blame] | 119 | trace.h-timestamp: $(SRC_PATH)/trace-events config-host.mak |
| 120 | $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h < $< > $@," GEN trace.h") |
| 121 | @cmp -s $@ trace.h || cp $@ trace.h |
Stefan Hajnoczi | 94a420b | 2010-05-22 17:52:39 +0100 | [diff] [blame] | 122 | |
Blue Swirl | a82cdd5 | 2010-10-02 14:28:12 +0000 | [diff] [blame] | 123 | trace.c: trace.c-timestamp |
| 124 | trace.c-timestamp: $(SRC_PATH)/trace-events config-host.mak |
| 125 | $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -c < $< > $@," GEN trace.c") |
| 126 | @cmp -s $@ trace.c || cp $@ trace.c |
Stefan Hajnoczi | 94a420b | 2010-05-22 17:52:39 +0100 | [diff] [blame] | 127 | |
| 128 | trace.o: trace.c $(GENERATED_HEADERS) |
| 129 | |
Daniel P. Berrange | b3d08c0 | 2010-11-12 13:20:24 +0000 | [diff] [blame^] | 130 | trace-dtrace.h: trace-dtrace.dtrace |
| 131 | $(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace-dtrace.h") |
| 132 | |
| 133 | # Normal practice is to name DTrace probe file with a '.d' extension |
| 134 | # but that gets picked up by QEMU's Makefile as an external dependancy |
| 135 | # rule file. So we use '.dtrace' instead |
| 136 | trace-dtrace.dtrace: trace-dtrace.dtrace-timestamp |
| 137 | trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events config-host.mak |
| 138 | $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -d < $< > $@," GEN trace-dtrace.dtrace") |
| 139 | @cmp -s $@ trace-dtrace.dtrace || cp $@ trace-dtrace.dtrace |
| 140 | |
| 141 | trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS) |
| 142 | $(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o") |
| 143 | |
Stefan Hajnoczi | 26f7227 | 2010-05-22 19:24:51 +0100 | [diff] [blame] | 144 | simpletrace.o: simpletrace.c $(GENERATED_HEADERS) |
| 145 | |
Blue Swirl | 9fe6de9 | 2010-09-26 16:07:57 +0000 | [diff] [blame] | 146 | version.o: $(SRC_PATH)/version.rc config-host.mak |
| 147 | $(call quiet-command,$(WINDRES) -I. -o $@ $<," RC $(TARGET_DIR)$@") |
| 148 | |
| 149 | version-obj-$(CONFIG_WIN32) += version.o |
bellard | 4fb240a | 2007-11-07 19:24:02 +0000 | [diff] [blame] | 150 | ###################################################################### |
| 151 | |
Juan Quintela | 3c089e1 | 2010-01-20 20:54:18 +0100 | [diff] [blame] | 152 | qemu-img.o: qemu-img-cmds.h |
| 153 | qemu-img.o qemu-tool.o qemu-nbd.o qemu-io.o: $(GENERATED_HEADERS) |
Stuart Brady | 153859b | 2009-06-07 00:42:17 +0100 | [diff] [blame] | 154 | |
Jes Sorensen | c1b0b93 | 2010-10-26 10:39:19 +0200 | [diff] [blame] | 155 | qemu-img$(EXESUF): qemu-img.o qemu-tool.o qemu-error.o $(oslib-obj-y) $(trace-obj-y) $(block-obj-y) $(qobject-obj-y) $(version-obj-y) qemu-timer-common.o |
bellard | 4fb240a | 2007-11-07 19:24:02 +0000 | [diff] [blame] | 156 | |
Jes Sorensen | c1b0b93 | 2010-10-26 10:39:19 +0200 | [diff] [blame] | 157 | qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o qemu-error.o $(oslib-obj-y) $(trace-obj-y) $(block-obj-y) $(qobject-obj-y) $(version-obj-y) qemu-timer-common.o |
aliguori | 3aa892d | 2009-01-21 18:13:02 +0000 | [diff] [blame] | 158 | |
Jes Sorensen | c1b0b93 | 2010-10-26 10:39:19 +0200 | [diff] [blame] | 159 | qemu-io$(EXESUF): qemu-io.o cmd.o qemu-tool.o qemu-error.o $(oslib-obj-y) $(trace-obj-y) $(block-obj-y) $(qobject-obj-y) $(version-obj-y) qemu-timer-common.o |
aliguori | 0a8e1ac | 2009-04-05 18:41:23 +0000 | [diff] [blame] | 160 | |
Stuart Brady | 153859b | 2009-06-07 00:42:17 +0100 | [diff] [blame] | 161 | qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx |
| 162 | $(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $@") |
| 163 | |
Jan Kiszka | 4091da4 | 2010-05-20 09:18:52 +0200 | [diff] [blame] | 164 | check-qint.o check-qstring.o check-qdict.o check-qlist.o check-qfloat.o check-qjson.o: $(GENERATED_HEADERS) |
| 165 | |
Jan Kiszka | 945d3e6 | 2010-10-19 16:03:15 +0200 | [diff] [blame] | 166 | check-qint: check-qint.o qint.o qemu-malloc.o $(trace-obj-y) |
| 167 | check-qstring: check-qstring.o qstring.o qemu-malloc.o $(trace-obj-y) |
| 168 | check-qdict: check-qdict.o qdict.o qfloat.o qint.o qstring.o qbool.o qemu-malloc.o qlist.o $(trace-obj-y) |
| 169 | check-qlist: check-qlist.o qlist.o qint.o qemu-malloc.o $(trace-obj-y) |
| 170 | check-qfloat: check-qfloat.o qfloat.o qemu-malloc.o $(trace-obj-y) |
| 171 | check-qjson: check-qjson.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o qjson.o json-streamer.o json-lexer.o json-parser.o qemu-malloc.o $(trace-obj-y) |
Luiz Capitulino | 33837ba | 2009-08-28 15:27:29 -0300 | [diff] [blame] | 172 | |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 173 | clean: |
bellard | 2d80ae8 | 2003-08-11 23:01:33 +0000 | [diff] [blame] | 174 | # avoid old build problems by removing potentially incorrect old files |
Juan Quintela | 25be210f | 2009-10-07 02:41:00 +0200 | [diff] [blame] | 175 | rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h |
Michael S. Tsirkin | df2943b | 2010-10-26 17:53:41 +0200 | [diff] [blame] | 176 | rm -f qemu-options.def |
aurel32 | 86e840e | 2008-12-07 15:21:23 +0000 | [diff] [blame] | 177 | rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~ |
Corentin Chary | 3e230dd | 2010-07-07 20:57:52 +0200 | [diff] [blame] | 178 | rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d block/*.o block/*.d net/*.o net/*.d fsdev/*.o fsdev/*.d ui/*.o ui/*.d |
Blue Swirl | 07b44ce | 2009-06-09 18:45:16 +0000 | [diff] [blame] | 179 | rm -f qemu-img-cmds.h |
Blue Swirl | d7489b7 | 2010-10-09 08:24:17 +0000 | [diff] [blame] | 180 | rm -f trace.c trace.h trace.c-timestamp trace.h-timestamp |
Daniel P. Berrange | b3d08c0 | 2010-11-12 13:20:24 +0000 | [diff] [blame^] | 181 | rm -f trace-dtrace.dtrace trace-dtrace.dtrace-timestamp |
| 182 | rm -f trace-dtrace.h trace-dtrace.h-timestamp |
bellard | 7d3505c | 2004-05-12 19:32:15 +0000 | [diff] [blame] | 183 | $(MAKE) -C tests clean |
Blue Swirl | 4d90453 | 2010-03-21 08:28:47 +0000 | [diff] [blame] | 184 | for d in $(ALL_SUBDIRS) libhw32 libhw64 libuser libdis libdis-user; do \ |
Magnus Damm | fc8e320 | 2009-11-13 18:51:05 +0900 | [diff] [blame] | 185 | if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \ |
Michael S. Tsirkin | df2943b | 2010-10-26 17:53:41 +0200 | [diff] [blame] | 186 | rm -f $$d/qemu-options.def; \ |
bellard | 626df76 | 2003-08-10 21:39:31 +0000 | [diff] [blame] | 187 | done |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 188 | |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 189 | distclean: clean |
Magnus Damm | fc8e320 | 2009-11-13 18:51:05 +0900 | [diff] [blame] | 190 | rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi |
Paul Brook | a992fe3 | 2009-11-22 16:25:30 +0000 | [diff] [blame] | 191 | rm -f config-all-devices.mak |
Magnus Damm | fc8e320 | 2009-11-13 18:51:05 +0900 | [diff] [blame] | 192 | rm -f roms/seabios/config.mak roms/vgabios/config.mak |
Hidetoshi Seto | e1a068b | 2010-07-08 14:26:18 +0900 | [diff] [blame] | 193 | rm -f qemu-doc.info qemu-doc.aux qemu-doc.cp qemu-doc.dvi qemu-doc.fn qemu-doc.info qemu-doc.ky qemu-doc.log qemu-doc.pdf qemu-doc.pg qemu-doc.toc qemu-doc.tp qemu-doc.vr |
| 194 | rm -f qemu-tech.info qemu-tech.aux qemu-tech.cp qemu-tech.dvi qemu-tech.fn qemu-tech.info qemu-tech.ky qemu-tech.log qemu-tech.pdf qemu-tech.pg qemu-tech.toc qemu-tech.tp qemu-tech.vr |
Blue Swirl | 4d90453 | 2010-03-21 08:28:47 +0000 | [diff] [blame] | 195 | for d in $(TARGET_DIRS) libhw32 libhw64 libuser libdis libdis-user; do \ |
bellard | bc1b050 | 2003-10-28 00:12:52 +0000 | [diff] [blame] | 196 | rm -rf $$d || exit 1 ; \ |
bellard | 76bc683 | 2003-08-10 23:41:46 +0000 | [diff] [blame] | 197 | done |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 198 | |
bellard | fed4a9a | 2004-12-12 22:18:34 +0000 | [diff] [blame] | 199 | KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \ |
| 200 | ar de en-us fi fr-be hr it lv nl pl ru th \ |
| 201 | common de-ch es fo fr-ca hu ja mk nl-be pt sl tr |
| 202 | |
ths | 7775534 | 2008-11-27 15:45:16 +0000 | [diff] [blame] | 203 | ifdef INSTALL_BLOBS |
Gerd Hoffmann | 3b3d448 | 2010-08-23 12:10:46 +0200 | [diff] [blame] | 204 | BLOBS=bios.bin vgabios.bin vgabios-cirrus.bin \ |
| 205 | vgabios-stdvga.bin vgabios-vmware.bin \ |
| 206 | ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc \ |
Stefan Weil | 5309e5f | 2010-03-04 14:44:41 -0600 | [diff] [blame] | 207 | gpxe-eepro100-80861209.rom \ |
| 208 | gpxe-eepro100-80861229.rom \ |
| 209 | pxe-e1000.bin \ |
Stefan Weil | 88e2b0a | 2009-11-02 19:59:06 +0100 | [diff] [blame] | 210 | pxe-ne2k_pci.bin pxe-pcnet.bin \ |
| 211 | pxe-rtl8139.bin pxe-virtio.bin \ |
Alexander Graf | 253d094 | 2009-06-29 15:37:40 +0200 | [diff] [blame] | 212 | bamboo.dtb petalogix-s3adsp1800.dtb \ |
Alexander Graf | fe270d0 | 2010-04-20 19:37:13 +0200 | [diff] [blame] | 213 | multiboot.bin linuxboot.bin \ |
| 214 | s390-zipl.rom |
ths | 7775534 | 2008-11-27 15:45:16 +0000 | [diff] [blame] | 215 | else |
| 216 | BLOBS= |
| 217 | endif |
| 218 | |
pbrook | 38954dc | 2006-04-30 23:54:18 +0000 | [diff] [blame] | 219 | install-doc: $(DOCS) |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 220 | $(INSTALL_DIR) "$(DESTDIR)$(docdir)" |
| 221 | $(INSTALL_DATA) qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)" |
Juan Quintela | 96d409e | 2009-08-03 14:47:00 +0200 | [diff] [blame] | 222 | ifdef CONFIG_POSIX |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 223 | $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" |
| 224 | $(INSTALL_DATA) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1" |
| 225 | $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man8" |
| 226 | $(INSTALL_DATA) qemu-nbd.8 "$(DESTDIR)$(mandir)/man8" |
pbrook | 38954dc | 2006-04-30 23:54:18 +0000 | [diff] [blame] | 227 | endif |
| 228 | |
john cooper | b5ec5ce | 2010-02-20 11:14:59 -0600 | [diff] [blame] | 229 | install-sysconfig: |
Andre Przywara | 990caaf | 2010-03-08 15:43:41 +0100 | [diff] [blame] | 230 | $(INSTALL_DIR) "$(DESTDIR)$(sysconfdir)/qemu" |
| 231 | $(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(sysconfdir)/qemu" |
john cooper | b5ec5ce | 2010-02-20 11:14:59 -0600 | [diff] [blame] | 232 | |
| 233 | install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 234 | $(INSTALL_DIR) "$(DESTDIR)$(bindir)" |
ths | 932a79d | 2007-10-20 18:29:34 +0000 | [diff] [blame] | 235 | ifneq ($(TOOLS),) |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 236 | $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)" |
ths | 932a79d | 2007-10-20 18:29:34 +0000 | [diff] [blame] | 237 | endif |
ths | 7775534 | 2008-11-27 15:45:16 +0000 | [diff] [blame] | 238 | ifneq ($(BLOBS),) |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 239 | $(INSTALL_DIR) "$(DESTDIR)$(datadir)" |
ths | 7775534 | 2008-11-27 15:45:16 +0000 | [diff] [blame] | 240 | set -e; for x in $(BLOBS); do \ |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 241 | $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \ |
pbrook | ad06484 | 2006-04-16 12:41:07 +0000 | [diff] [blame] | 242 | done |
ths | 7775534 | 2008-11-27 15:45:16 +0000 | [diff] [blame] | 243 | endif |
aliguori | 58f8aea | 2009-04-18 15:36:02 +0000 | [diff] [blame] | 244 | $(INSTALL_DIR) "$(DESTDIR)$(datadir)/keymaps" |
blueswir1 | 18be8d7 | 2008-03-05 18:16:09 +0000 | [diff] [blame] | 245 | set -e; for x in $(KEYMAPS); do \ |
Anthony Liguori | 79fd42a | 2009-05-28 03:11:42 -0500 | [diff] [blame] | 246 | $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \ |
pbrook | ad06484 | 2006-04-16 12:41:07 +0000 | [diff] [blame] | 247 | done |
bellard | 626df76 | 2003-08-10 21:39:31 +0000 | [diff] [blame] | 248 | for d in $(TARGET_DIRS); do \ |
bellard | 7d3505c | 2004-05-12 19:32:15 +0000 | [diff] [blame] | 249 | $(MAKE) -C $$d $@ || exit 1 ; \ |
bellard | 626df76 | 2003-08-10 21:39:31 +0000 | [diff] [blame] | 250 | done |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 251 | |
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 252 | # various test targets |
bellard | 9b0b820 | 2007-11-14 10:34:57 +0000 | [diff] [blame] | 253 | test speed: all |
bellard | 7d3505c | 2004-05-12 19:32:15 +0000 | [diff] [blame] | 254 | $(MAKE) -C tests $@ |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 255 | |
Alexandre Bique | 21d4e8e | 2009-08-07 15:43:11 +0100 | [diff] [blame] | 256 | .PHONY: TAGS |
ths | 5fafdf2 | 2007-09-16 21:08:06 +0000 | [diff] [blame] | 257 | TAGS: |
Alexandre Bique | 21d4e8e | 2009-08-07 15:43:11 +0100 | [diff] [blame] | 258 | find "$(SRC_PATH)" -name '*.[hc]' -print0 | xargs -0 etags |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 259 | |
bellard | 6688bc6 | 2005-08-21 09:23:39 +0000 | [diff] [blame] | 260 | cscope: |
| 261 | rm -f ./cscope.* |
aurel32 | ede4608 | 2008-10-01 21:46:58 +0000 | [diff] [blame] | 262 | find . -name "*.[ch]" -print | sed 's,^\./,,' > ./cscope.files |
bellard | 6688bc6 | 2005-08-21 09:23:39 +0000 | [diff] [blame] | 263 | cscope -b |
| 264 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 265 | # documentation |
Stefan Weil | 01668d9 | 2010-03-04 22:21:02 +0100 | [diff] [blame] | 266 | MAKEINFO=makeinfo |
| 267 | MAKEINFOFLAGS=--no-headers --no-split --number-sections |
Stefan Weil | 20cc999 | 2010-01-29 23:16:50 +0100 | [diff] [blame] | 268 | TEXIFLAG=$(if $(V),,--quiet) |
| 269 | %.dvi: %.texi |
| 270 | $(call quiet-command,texi2dvi $(TEXIFLAG) -I . $<," GEN $@") |
| 271 | |
bellard | 1f67313 | 2004-04-04 15:21:17 +0000 | [diff] [blame] | 272 | %.html: %.texi |
Stefan Weil | 01668d9 | 2010-03-04 22:21:02 +0100 | [diff] [blame] | 273 | $(call quiet-command,$(MAKEINFO) $(MAKEINFOFLAGS) --html $< -o $@, \ |
| 274 | " GEN $@") |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 275 | |
bellard | f354832 | 2006-04-30 22:51:54 +0000 | [diff] [blame] | 276 | %.info: %.texi |
Stefan Weil | 01668d9 | 2010-03-04 22:21:02 +0100 | [diff] [blame] | 277 | $(call quiet-command,$(MAKEINFO) $< -o $@," GEN $@") |
bellard | f354832 | 2006-04-30 22:51:54 +0000 | [diff] [blame] | 278 | |
Stefan Weil | 20cc999 | 2010-01-29 23:16:50 +0100 | [diff] [blame] | 279 | %.pdf: %.texi |
| 280 | $(call quiet-command,texi2pdf $(TEXIFLAG) -I . $<," GEN $@") |
blueswir1 | 5824d65 | 2009-03-28 06:44:27 +0000 | [diff] [blame] | 281 | |
| 282 | qemu-options.texi: $(SRC_PATH)/qemu-options.hx |
aliguori | 0d00e56 | 2009-04-05 17:40:46 +0000 | [diff] [blame] | 283 | $(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@," GEN $@") |
bellard | f354832 | 2006-04-30 22:51:54 +0000 | [diff] [blame] | 284 | |
Luiz Capitulino | acd0a09 | 2010-09-30 16:00:22 -0300 | [diff] [blame] | 285 | qemu-monitor.texi: $(SRC_PATH)/hmp-commands.hx |
Blue Swirl | 2313086 | 2009-06-06 08:22:04 +0000 | [diff] [blame] | 286 | $(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@," GEN $@") |
| 287 | |
Luiz Capitulino | 82a56f0 | 2010-09-13 12:26:00 -0300 | [diff] [blame] | 288 | QMP/qmp-commands.txt: $(SRC_PATH)/qmp-commands.hx |
Jan Kiszka | b40292e | 2010-05-31 14:43:31 -0300 | [diff] [blame] | 289 | $(call quiet-command,sh $(SRC_PATH)/hxtool -q < $< > $@," GEN $@") |
| 290 | |
Stuart Brady | 153859b | 2009-06-07 00:42:17 +0100 | [diff] [blame] | 291 | qemu-img-cmds.texi: $(SRC_PATH)/qemu-img-cmds.hx |
| 292 | $(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@," GEN $@") |
| 293 | |
Blue Swirl | 2313086 | 2009-06-06 08:22:04 +0000 | [diff] [blame] | 294 | qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi |
aliguori | 0d00e56 | 2009-04-05 17:40:46 +0000 | [diff] [blame] | 295 | $(call quiet-command, \ |
| 296 | perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod && \ |
| 297 | pod2man --section=1 --center=" " --release=" " qemu.pod > $@, \ |
| 298 | " GEN $@") |
bellard | 5a67135 | 2003-10-01 00:13:48 +0000 | [diff] [blame] | 299 | |
Stuart Brady | 153859b | 2009-06-07 00:42:17 +0100 | [diff] [blame] | 300 | qemu-img.1: qemu-img.texi qemu-img-cmds.texi |
aliguori | 0d00e56 | 2009-04-05 17:40:46 +0000 | [diff] [blame] | 301 | $(call quiet-command, \ |
| 302 | perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu-img.pod && \ |
| 303 | pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@, \ |
| 304 | " GEN $@") |
bellard | acd935e | 2004-11-15 22:57:26 +0000 | [diff] [blame] | 305 | |
bellard | 7a5ca86 | 2008-05-27 21:13:40 +0000 | [diff] [blame] | 306 | qemu-nbd.8: qemu-nbd.texi |
aliguori | 0d00e56 | 2009-04-05 17:40:46 +0000 | [diff] [blame] | 307 | $(call quiet-command, \ |
| 308 | perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu-nbd.pod && \ |
| 309 | pod2man --section=8 --center=" " --release=" " qemu-nbd.pod > $@, \ |
| 310 | " GEN $@") |
bellard | 7a5ca86 | 2008-05-27 21:13:40 +0000 | [diff] [blame] | 311 | |
pbrook | 0cb3fb1 | 2006-05-14 12:07:53 +0000 | [diff] [blame] | 312 | dvi: qemu-doc.dvi qemu-tech.dvi |
pbrook | 0cb3fb1 | 2006-05-14 12:07:53 +0000 | [diff] [blame] | 313 | html: qemu-doc.html qemu-tech.html |
Stefan Weil | 20cc999 | 2010-01-29 23:16:50 +0100 | [diff] [blame] | 314 | info: qemu-doc.info qemu-tech.info |
| 315 | pdf: qemu-doc.pdf qemu-tech.pdf |
pbrook | 0cb3fb1 | 2006-05-14 12:07:53 +0000 | [diff] [blame] | 316 | |
Stefan Weil | 20cc999 | 2010-01-29 23:16:50 +0100 | [diff] [blame] | 317 | qemu-doc.dvi qemu-doc.html qemu-doc.info qemu-doc.pdf: \ |
| 318 | qemu-img.texi qemu-nbd.texi qemu-options.texi \ |
| 319 | qemu-monitor.texi qemu-img-cmds.texi |
aliguori | 818220f | 2008-09-24 01:13:40 +0000 | [diff] [blame] | 320 | |
ths | df5cf72 | 2007-01-24 22:56:36 +0000 | [diff] [blame] | 321 | VERSION ?= $(shell cat VERSION) |
| 322 | FILE = qemu-$(VERSION) |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 323 | |
bellard | 1e43adf | 2003-09-30 20:54:24 +0000 | [diff] [blame] | 324 | # tar release (use 'make -k tar' on a checkouted tree) |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 325 | tar: |
| 326 | rm -rf /tmp/$(FILE) |
bellard | 1e43adf | 2003-09-30 20:54:24 +0000 | [diff] [blame] | 327 | cp -r . /tmp/$(FILE) |
aurel32 | 99c6c08 | 2008-04-22 20:45:30 +0000 | [diff] [blame] | 328 | cd /tmp && tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS --exclude .git --exclude .svn |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 329 | rm -rf /tmp/$(FILE) |
| 330 | |
Stuart Brady | 4c0a6db | 2010-05-12 20:42:04 +0100 | [diff] [blame] | 331 | SYSTEM_TARGETS=$(filter %-softmmu,$(TARGET_DIRS)) |
| 332 | SYSTEM_PROGS=$(patsubst qemu-system-i386,qemu, \ |
| 333 | $(patsubst %-softmmu,qemu-system-%, \ |
| 334 | $(SYSTEM_TARGETS))) |
| 335 | |
| 336 | USER_TARGETS=$(filter %-user,$(TARGET_DIRS)) |
| 337 | USER_PROGS=$(patsubst %-bsd-user,qemu-%, \ |
| 338 | $(patsubst %-darwin-user,qemu-%, \ |
| 339 | $(patsubst %-linux-user,qemu-%, \ |
| 340 | $(USER_TARGETS)))) |
| 341 | |
bellard | 76b62fd | 2003-10-28 00:47:44 +0000 | [diff] [blame] | 342 | # generate a binary distribution |
bellard | d691f66 | 2003-03-24 21:58:34 +0000 | [diff] [blame] | 343 | tarbin: |
blueswir1 | 18be8d7 | 2008-03-05 18:16:09 +0000 | [diff] [blame] | 344 | cd / && tar zcvf ~/qemu-$(VERSION)-$(ARCH).tar.gz \ |
Stuart Brady | 4c0a6db | 2010-05-12 20:42:04 +0100 | [diff] [blame] | 345 | $(patsubst %,$(bindir)/%, $(SYSTEM_PROGS)) \ |
| 346 | $(patsubst %,$(bindir)/%, $(USER_PROGS)) \ |
aurel32 | 40e8a53 | 2009-01-03 12:35:57 +0000 | [diff] [blame] | 347 | $(bindir)/qemu-img \ |
| 348 | $(bindir)/qemu-nbd \ |
bellard | 7efa438 | 2004-05-12 18:54:06 +0000 | [diff] [blame] | 349 | $(datadir)/bios.bin \ |
| 350 | $(datadir)/vgabios.bin \ |
bellard | de9258a | 2004-06-06 15:50:03 +0000 | [diff] [blame] | 351 | $(datadir)/vgabios-cirrus.bin \ |
bellard | 637f6cd | 2004-06-21 19:54:47 +0000 | [diff] [blame] | 352 | $(datadir)/ppc_rom.bin \ |
bellard | 0986ac3 | 2006-06-14 12:36:32 +0000 | [diff] [blame] | 353 | $(datadir)/openbios-sparc32 \ |
blueswir1 | 938255d | 2008-04-23 19:38:07 +0000 | [diff] [blame] | 354 | $(datadir)/openbios-sparc64 \ |
aurel32 | e5d01b0 | 2009-01-09 11:01:31 +0000 | [diff] [blame] | 355 | $(datadir)/openbios-ppc \ |
aurel32 | 40e8a53 | 2009-01-03 12:35:57 +0000 | [diff] [blame] | 356 | $(datadir)/pxe-ne2k_pci.bin \ |
bellard | 19c80e5 | 2007-02-05 21:22:42 +0000 | [diff] [blame] | 357 | $(datadir)/pxe-rtl8139.bin \ |
aurel32 | 40e8a53 | 2009-01-03 12:35:57 +0000 | [diff] [blame] | 358 | $(datadir)/pxe-pcnet.bin \ |
aliguori | 2991990 | 2008-07-26 16:53:22 +0000 | [diff] [blame] | 359 | $(datadir)/pxe-e1000.bin \ |
bellard | 1f50f8d | 2004-05-08 14:44:43 +0000 | [diff] [blame] | 360 | $(docdir)/qemu-doc.html \ |
| 361 | $(docdir)/qemu-tech.html \ |
aurel32 | 40e8a53 | 2009-01-03 12:35:57 +0000 | [diff] [blame] | 362 | $(mandir)/man1/qemu.1 \ |
| 363 | $(mandir)/man1/qemu-img.1 \ |
bellard | 7a5ca86 | 2008-05-27 21:13:40 +0000 | [diff] [blame] | 364 | $(mandir)/man8/qemu-nbd.8 |
bellard | d691f66 | 2003-03-24 21:58:34 +0000 | [diff] [blame] | 365 | |
bellard | 4fb240a | 2007-11-07 19:24:02 +0000 | [diff] [blame] | 366 | # Include automatically generated dependency files |
Corentin Chary | 3e230dd | 2010-07-07 20:57:52 +0200 | [diff] [blame] | 367 | -include $(wildcard *.d audio/*.d slirp/*.d block/*.d net/*.d ui/*.d) |