bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 1 | include config.mak |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 2 | |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 3 | CFLAGS=-Wall -O2 -g |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 4 | LDFLAGS=-g |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 5 | LIBS= |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 6 | DEFINES=-DHAVE_BYTESWAP_H |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 7 | |
8 | ifeq ($(ARCH),i386) | ||||
9 | CFLAGS+=-fomit-frame-pointer | ||||
bellard | ca73520 | 2003-03-18 20:41:34 +0000 | [diff] [blame] | 10 | OP_CFLAGS=$(CFLAGS) -mpreferred-stack-boundary=2 |
11 | ifeq ($(GCC_MAJOR),3) | ||||
12 | OP_CFLAGS+= -falign-functions=0 | ||||
13 | else | ||||
14 | OP_CFLAGS+= -malign-functions=0 | ||||
15 | endif | ||||
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 16 | endif |
17 | |||||
18 | ifeq ($(ARCH),ppc) | ||||
bellard | 927f621 | 2003-03-02 19:39:42 +0000 | [diff] [blame] | 19 | OP_CFLAGS=$(CFLAGS) |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 20 | endif |
21 | |||||
bellard | fd429f2 | 2003-03-30 20:59:46 +0000 | [diff] [blame^] | 22 | ifeq ($(ARCH),s390) |
23 | OP_CFLAGS=$(CFLAGS) | ||||
24 | endif | ||||
25 | |||||
bellard | ca73520 | 2003-03-18 20:41:34 +0000 | [diff] [blame] | 26 | ifeq ($(GCC_MAJOR),3) |
27 | # very important to generate a return at the end of every operation | ||||
28 | OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls | ||||
29 | endif | ||||
30 | |||||
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 31 | ######################################################### |
32 | |||||
bellard | 0ecfa99 | 2003-03-03 14:32:43 +0000 | [diff] [blame] | 33 | DEFINES+=-D_GNU_SOURCE |
bellard | 766a487 | 2003-02-18 23:35:48 +0000 | [diff] [blame] | 34 | LDSCRIPT=$(ARCH).ld |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 35 | LIBS+=-lm |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 36 | |
37 | # profiling code | ||||
38 | ifdef TARGET_GPROF | ||||
39 | LDFLAGS+=-p | ||||
bellard | dc99065 | 2003-03-19 00:00:28 +0000 | [diff] [blame] | 40 | main.o: CFLAGS+=-p |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 41 | endif |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 42 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 43 | OBJS= elfload.o main.o syscall.o signal.o |
44 | SRCS:= $(OBJS:.o=.c) | ||||
45 | OBJS+= libqemu.a | ||||
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 46 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 47 | LIBOBJS+=thunk.o translate-i386.o op-i386.o exec-i386.o |
bellard | 0ecfa99 | 2003-03-03 14:32:43 +0000 | [diff] [blame] | 48 | # NOTE: the disassembler code is only needed for debugging |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 49 | LIBOBJS+=i386-dis.o dis-buf.o |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 50 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 51 | all: qemu qemu-doc.html |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 52 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 53 | qemu: $(OBJS) |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 54 | $(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 55 | |
56 | depend: $(SRCS) | ||||
57 | $(CC) -MM $(CFLAGS) $^ 1>.depend | ||||
58 | |||||
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 59 | # libqemu |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 60 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 61 | libqemu.a: $(LIBOBJS) |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 62 | rm -f $@ |
63 | $(AR) rcs $@ $(LIBOBJS) | ||||
64 | |||||
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 65 | dyngen: dyngen.c |
66 | $(HOST_CC) -O2 -Wall -g $< -o $@ | ||||
67 | |||||
68 | translate-i386.o: translate-i386.c op-i386.h cpu-i386.h | ||||
69 | |||||
70 | op-i386.h: op-i386.o dyngen | ||||
71 | ./dyngen -o $@ $< | ||||
72 | |||||
73 | op-i386.o: op-i386.c opreg_template.h ops_template.h | ||||
bellard | 927f621 | 2003-03-02 19:39:42 +0000 | [diff] [blame] | 74 | $(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $< |
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 75 | |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 76 | %.o: %.c |
77 | $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< | ||||
78 | |||||
79 | clean: | ||||
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 80 | $(MAKE) -C tests clean |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 81 | rm -f *.o *.a *~ qemu dyngen TAGS |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 82 | |
bellard | 7d13299 | 2003-03-06 23:23:54 +0000 | [diff] [blame] | 83 | distclean: clean |
84 | rm -f config.mak config.h | ||||
85 | |||||
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 86 | install: qemu |
87 | install -m 755 -s qemu $(prefix)/bin | ||||
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 88 | |
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 89 | # various test targets |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 90 | test speed: qemu |
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 91 | make -C tests $@ |
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 92 | |
bellard | 367e86e | 2003-03-01 17:13:26 +0000 | [diff] [blame] | 93 | TAGS: |
94 | etags *.[ch] i386/*.[ch] | ||||
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 95 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 96 | # documentation |
97 | qemu-doc.html: qemu-doc.texi | ||||
98 | texi2html -monolithic -number $< | ||||
99 | |||||
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 100 | FILES= \ |
bellard | fd429f2 | 2003-03-30 20:59:46 +0000 | [diff] [blame^] | 101 | README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \ |
102 | dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\ | ||||
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 103 | Makefile elf.h linux_bin.h segment.h thunk.c\ |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 104 | elfload.c main.c signal.c thunk.h\ |
bellard | fd429f2 | 2003-03-30 20:59:46 +0000 | [diff] [blame^] | 105 | cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\ |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 106 | dis-asm.h gen-i386.h op-i386.h syscall.c\ |
107 | dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ | ||||
bellard | fd429f2 | 2003-03-30 20:59:46 +0000 | [diff] [blame^] | 108 | i386.ld ppc.ld s390.ld exec-i386.h exec-i386.c configure \ |
bellard | 77f8dd5 | 2003-03-05 22:24:48 +0000 | [diff] [blame] | 109 | tests/Makefile\ |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 110 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ |
bellard | 612384d | 2003-03-22 17:31:19 +0000 | [diff] [blame] | 111 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ |
112 | tests/hello.c tests/hello tests/sha1.c \ | ||||
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 113 | tests/testsig.c tests/testclone.c tests/testthread.c \ |
bellard | fd429f2 | 2003-03-30 20:59:46 +0000 | [diff] [blame^] | 114 | tests/runcom.c tests/pi_10.com \ |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 115 | qemu-doc.texi qemu-doc.html |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 116 | |
bellard | 3ef693a | 2003-03-23 20:17:16 +0000 | [diff] [blame] | 117 | FILE=qemu-$(VERSION) |
bellard | 586314f | 2003-03-03 15:02:29 +0000 | [diff] [blame] | 118 | |
119 | tar: | ||||
120 | rm -rf /tmp/$(FILE) | ||||
121 | mkdir -p /tmp/$(FILE) | ||||
122 | cp -P $(FILES) /tmp/$(FILE) | ||||
123 | ( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) ) | ||||
124 | rm -rf /tmp/$(FILE) | ||||
125 | |||||
bellard | d691f66 | 2003-03-24 21:58:34 +0000 | [diff] [blame] | 126 | # generate a binary distribution including the test binary environnment |
127 | BINPATH=/usr/local/qemu-i386 | ||||
128 | |||||
129 | tarbin: | ||||
130 | tar zcvf /tmp/qemu-i386-glibc21.tar.gz \ | ||||
131 | $(BINPATH)/etc $(BINPATH)/lib $(BINPATH)/bin | ||||
132 | tar zcvf /tmp/qemu-i386-wine.tar.gz \ | ||||
133 | $(BINPATH)/X11R6 $(BINPATH)/wine | ||||
134 | |||||
bellard | 31e31b8 | 2003-02-18 22:55:36 +0000 | [diff] [blame] | 135 | ifneq ($(wildcard .depend),) |
136 | include .depend | ||||
137 | endif |