1 # Makefile for QEMU. |
1 # Makefile for QEMU. |
2 |
2 |
3 include config-host.mak |
3 include config-host.mak |
4 |
4 |
5 .PHONY: all clean cscope distclean dvi html info install install-doc \ |
5 .PHONY: all clean cscope distclean dvi html info install install-doc \ |
6 recurse-all speed tar tarbin test |
6 recurse-all model-libs speed tar tarbin test |
7 |
7 |
8 VPATH=$(SRC_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/libfdt |
8 VPATH=$(SRC_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/libfdt |
9 |
9 |
10 CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS) |
10 CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS) |
11 LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS) |
11 LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS) |
30 |
30 |
31 ifdef CONFIG_WIN32 |
31 ifdef CONFIG_WIN32 |
32 LIBS+=-lwinmm -lws2_32 -liphlpapi |
32 LIBS+=-lwinmm -lws2_32 -liphlpapi |
33 endif |
33 endif |
34 |
34 |
35 all: $(TOOLS) $(DOCS) recurse-all |
35 all:: $(TOOLS) $(DOCS) recurse-all |
|
36 |
|
37 ifneq ($(MODEL_LIBS_DIR),) |
|
38 all:: model-libs |
|
39 |
|
40 model-libs: |
|
41 $(MAKE) -C $(MODEL_LIBS_DIR) all |
|
42 endif |
|
43 |
36 |
44 |
37 SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) |
45 SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) |
38 |
46 |
39 subdir-%: |
47 subdir-%: |
40 $(MAKE) -C $(subst subdir-,,$@) all |
48 $(MAKE) -C $(subst subdir-,,$@) all |
201 |
209 |
202 qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o osdep.o $(BLOCK_OBJS) |
210 qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o osdep.o $(BLOCK_OBJS) |
203 $(CC) $(LDFLAGS) -o $@ $^ -lz $(LIBS) |
211 $(CC) $(LDFLAGS) -o $@ $^ -lz $(LIBS) |
204 |
212 |
205 clean: |
213 clean: |
|
214 ifneq ($(MODEL_LIBS_DIR),) |
|
215 $(MAKE) -C $(MODEL_LIBS_DIR) $@ |
|
216 endif |
206 # avoid old build problems by removing potentially incorrect old files |
217 # avoid old build problems by removing potentially incorrect old files |
207 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 |
218 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 |
208 rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~ |
219 rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~ |
209 rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d |
220 rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d |
210 $(MAKE) -C tests clean |
221 $(MAKE) -C tests clean |
211 for d in $(TARGET_DIRS); do \ |
222 for d in $(TARGET_DIRS); do \ |
212 $(MAKE) -C $$d $@ || exit 1 ; \ |
223 $(MAKE) -C $$d $@ || exit 1 ; \ |
213 done |
224 done |
214 |
225 |
215 distclean: clean |
226 distclean: clean |
|
227 ifneq ($(MODEL_LIBS_DIR),) |
|
228 $(MAKE) -C $(MODEL_LIBS_DIR) $@ |
|
229 endif |
216 rm -f config-host.mak config-host.h $(DOCS) |
230 rm -f config-host.mak config-host.h $(DOCS) |
217 rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr} |
231 rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr} |
218 for d in $(TARGET_DIRS); do \ |
232 for d in $(TARGET_DIRS); do \ |
219 rm -rf $$d || exit 1 ; \ |
233 rm -rf $$d || exit 1 ; \ |
220 done |
234 done |