xref: /openbmc/qemu/Makefile (revision 67b915a5)
1626df76aSbellardinclude config-host.mak
2766a487aSbellard
37d13299dSbellardCFLAGS=-Wall -O2 -g
4*67b915a5Sbellardifdef CONFIG_WIN32
5*67b915a5SbellardCFLAGS+=-fpack-struct
6*67b915a5Sbellardendif
731e31b8aSbellardLDFLAGS=-g
8766a487aSbellardLIBS=
90ecfa993SbellardDEFINES+=-D_GNU_SOURCE
10*67b915a5Sbellardifndef CONFIG_WIN32
111e43adfcSbellardTOOLS=qemu-mkcow
12*67b915a5Sbellardendif
137d13299dSbellard
14*67b915a5Sbellardall: dyngen$(EXESUF) $(TOOLS) qemu-doc.html qemu.1
15626df76aSbellard	for d in $(TARGET_DIRS); do \
16626df76aSbellard	make -C $$d $@ || exit 1 ; \
17626df76aSbellard        done
1833e3963eSbellard
191e43adfcSbellardqemu-mkcow: qemu-mkcow.o
20626df76aSbellard	$(HOST_CC) -o $@ $^  $(LIBS)
210824d6fcSbellard
22*67b915a5Sbellarddyngen$(EXESUF): dyngen.o
23626df76aSbellard	$(HOST_CC) -o $@ $^  $(LIBS)
24de83cd02Sbellard
2531e31b8aSbellard%.o: %.c
26626df76aSbellard	$(HOST_CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
2731e31b8aSbellard
2831e31b8aSbellardclean:
292d80ae89Sbellard# avoid old build problems by removing potentially incorrect old files
302d80ae89Sbellard	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*67b915a5Sbellard	rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS qemu.pod
3268e73e39Sbellard	make -C tests clean
33626df76aSbellard	for d in $(TARGET_DIRS); do \
34626df76aSbellard	make -C $$d $@ || exit 1 ; \
35626df76aSbellard        done
3631e31b8aSbellard
377d13299dSbellarddistclean: clean
382d80ae89Sbellard	rm -f config-host.mak config-host.h
3976bc6838Sbellard	for d in $(TARGET_DIRS); do \
40bc1b050dSbellard	rm -rf $$d || exit 1 ; \
4176bc6838Sbellard        done
427d13299dSbellard
43626df76aSbellardinstall: all
44d5a0b50cSbellard	mkdir -p $(prefix)/bin
45626df76aSbellard	install -m 755 -s $(TOOLS) $(prefix)/bin
465a67135aSbellard	mkdir -p $(sharedir)
47a735aa31Sbellard	install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \
48a735aa31Sbellard                       pc-bios/linux_boot.bin $(sharedir)
495a67135aSbellard	mkdir -p $(mandir)/man1
50c101c49cSbellard	install qemu.1 qemu-mkcow.1 $(mandir)/man1
51626df76aSbellard	for d in $(TARGET_DIRS); do \
52626df76aSbellard	make -C $$d $@ || exit 1 ; \
53626df76aSbellard        done
54612384d7Sbellard
55367e86e8Sbellard# various test targets
5682c7e2a4Sbellardtest speed test2: all
57367e86e8Sbellard	make -C tests $@
5831e31b8aSbellard
59367e86e8SbellardTAGS:
60b9adb4a6Sbellard	etags *.[ch] tests/*.[ch]
6131e31b8aSbellard
623ef693a0Sbellard# documentation
633ef693a0Sbellardqemu-doc.html: qemu-doc.texi
643ef693a0Sbellard	texi2html -monolithic -number $<
653ef693a0Sbellard
665a67135aSbellardqemu.1: qemu-doc.texi
675a67135aSbellard	./texi2pod.pl $< qemu.pod
685a67135aSbellard	pod2man --section=1 --center=" " --release=" " qemu.pod > $@
695a67135aSbellard
701e43adfcSbellardFILE=qemu-$(shell cat VERSION)
71586314f2Sbellard
721e43adfcSbellard# tar release (use 'make -k tar' on a checkouted tree)
73586314f2Sbellardtar:
74586314f2Sbellard	rm -rf /tmp/$(FILE)
751e43adfcSbellard	cp -r . /tmp/$(FILE)
7676b62fd0Sbellard	( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS )
77586314f2Sbellard	rm -rf /tmp/$(FILE)
78586314f2Sbellard
7976b62fd0Sbellard# generate a binary distribution
80d691f669Sbellardtarbin:
8176b62fd0Sbellard	( cd / ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
8276b62fd0Sbellard	$(prefix)/bin/qemu $(prefix)/bin/qemu-fast \
8376b62fd0Sbellard	$(prefix)/bin/qemu-i386 \
8476b62fd0Sbellard        $(prefix)/bin/qemu-arm \
8576b62fd0Sbellard        $(prefix)/bin/qemu-sparc \
86c0637b37Sbellard        $(prefix)/bin/qemu-ppc \
8776b62fd0Sbellard	$(sharedir)/bios.bin \
8876b62fd0Sbellard	$(sharedir)/vgabios.bin \
8976b62fd0Sbellard	$(mandir)/man1/qemu.1 )
90d691f669Sbellard
9131e31b8aSbellardifneq ($(wildcard .depend),)
9231e31b8aSbellardinclude .depend
9331e31b8aSbellardendif
94