Revision 1e43adfc
b/Makefile | ||
---|---|---|
4 | 4 |
LDFLAGS=-g |
5 | 5 |
LIBS= |
6 | 6 |
DEFINES+=-D_GNU_SOURCE |
7 |
TOOLS=vlmkcow
|
|
7 |
TOOLS=qemu-mkcow
|
|
8 | 8 |
|
9 | 9 |
all: dyngen $(TOOLS) qemu-doc.html |
10 | 10 |
for d in $(TARGET_DIRS); do \ |
11 | 11 |
make -C $$d $@ || exit 1 ; \ |
12 | 12 |
done |
13 | 13 |
|
14 |
vlmkcow: vlmkcow.o
|
|
14 |
qemu-mkcow: qemu-mkcow.o
|
|
15 | 15 |
$(HOST_CC) -o $@ $^ $(LIBS) |
16 | 16 |
|
17 | 17 |
dyngen: dyngen.o |
... | ... | |
52 | 52 |
qemu-doc.html: qemu-doc.texi |
53 | 53 |
texi2html -monolithic -number $< |
54 | 54 |
|
55 |
FILES= \ |
|
56 |
README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \ |
|
57 |
configure Makefile Makefile.target \ |
|
58 |
dyngen.c dyngen.h dyngen-exec.h ioctls.h syscall_types.h \ |
|
59 |
elf.h elfload.c main.c signal.c qemu.h \ |
|
60 |
syscall.c syscall_defs.h vm86.c path.c mmap.c \ |
|
61 |
i386.ld ppc.ld alpha.ld s390.ld sparc.ld arm.ld m68k.ld \ |
|
62 |
vl.c i386-vl.ld vl.h block.c vlmkcow.c vga.c vga_template.h sdl.c \ |
|
63 |
thunk.c cpu-exec.c translate.c cpu-all.h cpu-defs.h thunk.h exec.h\ |
|
64 |
exec.c cpu-exec.c gdbstub.c bswap.h \ |
|
65 |
cpu-i386.h op-i386.c helper-i386.c helper2-i386.c syscall-i386.h translate-i386.c \ |
|
66 |
exec-i386.h ops_template.h ops_template_mem.h opreg_template.h \ |
|
67 |
ops_mem.h softmmu_template.h softmmu_header.h \ |
|
68 |
cpu-arm.h syscall-arm.h exec-arm.h op-arm.c translate-arm.c op-arm-template.h \ |
|
69 |
dis-asm.h disas.c disas.h alpha-dis.c ppc-dis.c i386-dis.c sparc-dis.c \ |
|
70 |
arm-dis.c \ |
|
71 |
tests/Makefile \ |
|
72 |
tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h \ |
|
73 |
tests/test-i386-muldiv.h tests/test-i386-code16.S tests/test-i386-vm86.S \ |
|
74 |
tests/hello-i386.c tests/hello-i386 \ |
|
75 |
tests/hello-arm.c tests/hello-arm \ |
|
76 |
tests/sha1.c \ |
|
77 |
tests/testsig.c tests/testclone.c tests/testthread.c \ |
|
78 |
tests/runcom.c tests/pi_10.com \ |
|
79 |
tests/test_path.c \ |
|
80 |
qemu-doc.texi qemu-doc.html |
|
81 |
|
|
82 |
FILE=qemu-$(VERSION) |
|
55 |
FILE=qemu-$(shell cat VERSION) |
|
83 | 56 |
|
57 |
# tar release (use 'make -k tar' on a checkouted tree) |
|
84 | 58 |
tar: |
85 | 59 |
rm -rf /tmp/$(FILE) |
86 |
mkdir -p /tmp/$(FILE) |
|
87 |
cp --parent $(FILES) /tmp/$(FILE) |
|
60 |
cp -r . /tmp/$(FILE) |
|
88 | 61 |
( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) ) |
89 | 62 |
rm -rf /tmp/$(FILE) |
90 | 63 |
|
b/Makefile.target | ||
---|---|---|
1 | 1 |
include config.mak |
2 | 2 |
|
3 |
VPATH=$(SRC_PATH) |
|
3 |
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_ARCH) |
|
4 |
VPATH=$(SRC_PATH):$(TARGET_PATH) |
|
4 | 5 |
CFLAGS=-Wall -O2 -g |
5 | 6 |
LDFLAGS=-g |
6 | 7 |
LIBS= |
7 |
DEFINES=-I. |
|
8 |
DEFINES=-I. -I$(TARGET_PATH) -I$(SRC_PATH)
|
|
8 | 9 |
HELPER_CFLAGS=$(CFLAGS) |
9 | 10 |
DYNGEN=../dyngen |
11 |
# user emulator name |
|
12 |
QEMU_USER=qemu-$(TARGET_ARCH) |
|
13 |
# system emulator name |
|
14 |
ifdef CONFIG_SOFTMMU |
|
15 |
QEMU_SYSTEM=qemu-softmmu |
|
16 |
else |
|
17 |
QEMU_SYSTEM=qemu |
|
18 |
endif |
|
19 |
|
|
10 | 20 |
ifndef CONFIG_SOFTMMU |
11 |
PROGS=qemu
|
|
21 |
PROGS=$(QEMU_USER)
|
|
12 | 22 |
endif |
13 | 23 |
|
14 | 24 |
ifdef CONFIG_STATIC |
... | ... | |
32 | 42 |
LDFLAGS+=-Wl,-shared |
33 | 43 |
endif |
34 | 44 |
ifeq ($(TARGET_ARCH), i386) |
35 |
PROGS+=vl
|
|
45 |
PROGS+=$(QEMU_SYSTEM)
|
|
36 | 46 |
endif |
37 | 47 |
endif |
38 | 48 |
|
... | ... | |
108 | 118 |
OBJS+= libqemu.a |
109 | 119 |
|
110 | 120 |
# cpu emulator library |
111 |
LIBOBJS=thunk.o exec.o translate.o cpu-exec.o gdbstub.o |
|
121 |
LIBOBJS=thunk.o exec.o translate-all.o cpu-exec.o gdbstub.o \ |
|
122 |
translate.o op.o |
|
112 | 123 |
|
113 | 124 |
ifeq ($(TARGET_ARCH), i386) |
114 |
LIBOBJS+=translate-i386.o op-i386.o helper-i386.o helper2-i386.o |
|
115 |
endif |
|
116 |
ifeq ($(TARGET_ARCH), arm) |
|
117 |
LIBOBJS+=translate-arm.o op-arm.o |
|
125 |
LIBOBJS+=helper.o helper2.o |
|
118 | 126 |
endif |
119 | 127 |
|
120 | 128 |
# NOTE: the disassembler code is only needed for debugging |
... | ... | |
139 | 147 |
OBJS += ia64-syscall.o |
140 | 148 |
endif |
141 | 149 |
|
142 |
all: $(PROGS) qemu-doc.html
|
|
150 |
all: $(PROGS) |
|
143 | 151 |
|
144 |
qemu: $(OBJS)
|
|
152 |
$(QEMU_USER): $(OBJS)
|
|
145 | 153 |
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
146 | 154 |
ifeq ($(ARCH),alpha) |
147 | 155 |
# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of |
... | ... | |
156 | 164 |
SDL_LIBS+=-L/usr/X11R6/lib -lX11 -lXext -lXv -ldl -lm |
157 | 165 |
endif |
158 | 166 |
|
159 |
vl: $(VL_OBJS) libqemu.a
|
|
167 |
$(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
|
|
160 | 168 |
$(CC) -static -Wl,-T,$(SRC_PATH)/i386-vl.ld -o $@ $^ $(LIBS) $(SDL_LIBS) |
161 | 169 |
|
162 | 170 |
sdl.o: sdl.c |
... | ... | |
171 | 179 |
rm -f $@ |
172 | 180 |
$(AR) rcs $@ $(LIBOBJS) |
173 | 181 |
|
174 |
translate-$(TARGET_ARCH).o: translate-$(TARGET_ARCH).c gen-op-$(TARGET_ARCH).h opc-$(TARGET_ARCH).h cpu-$(TARGET_ARCH).h
|
|
182 |
translate.o: translate.c gen-op.h opc.h cpu.h
|
|
175 | 183 |
|
176 |
translate.o: translate.c op-$(TARGET_ARCH).h opc-$(TARGET_ARCH).h cpu-$(TARGET_ARCH).h
|
|
184 |
translate-all.o: translate-all.c op.h opc.h cpu.h
|
|
177 | 185 |
|
178 |
op-$(TARGET_ARCH).h: op-$(TARGET_ARCH).o $(DYNGEN)
|
|
186 |
op.h: op.o $(DYNGEN)
|
|
179 | 187 |
$(DYNGEN) -o $@ $< |
180 | 188 |
|
181 |
opc-$(TARGET_ARCH).h: op-$(TARGET_ARCH).o $(DYNGEN)
|
|
189 |
opc.h: op.o $(DYNGEN)
|
|
182 | 190 |
$(DYNGEN) -c -o $@ $< |
183 | 191 |
|
184 |
gen-op-$(TARGET_ARCH).h: op-$(TARGET_ARCH).o $(DYNGEN)
|
|
192 |
gen-op.h: op.o $(DYNGEN)
|
|
185 | 193 |
$(DYNGEN) -g -o $@ $< |
186 | 194 |
|
187 |
op-$(TARGET_ARCH).o: op-$(TARGET_ARCH).c
|
|
195 |
op.o: op.c
|
|
188 | 196 |
$(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $< |
189 | 197 |
|
190 |
helper-$(TARGET_ARCH).o: helper-$(TARGET_ARCH).c
|
|
198 |
helper.o: helper.c
|
|
191 | 199 |
$(CC) $(HELPER_CFLAGS) $(DEFINES) -c -o $@ $< |
192 | 200 |
|
193 |
op-i386.o: op-i386.c opreg_template.h ops_template.h ops_template_mem.h ops_mem.h |
|
201 |
ifeq ($(TARGET_ARCH), i386) |
|
202 |
op.o: op.c opreg_template.h ops_template.h ops_template_mem.h ops_mem.h |
|
203 |
endif |
|
204 |
|
|
205 |
ifeq ($(TARGET_ARCH), arm) |
|
206 |
op.o: op.c op_template.h |
|
207 |
endif |
|
194 | 208 |
|
195 |
op-arm.o: op-arm.c op-arm-template.h |
|
209 |
ifeq ($(TARGET_ARCH), sparc) |
|
210 |
op.o: op.c op_template.h |
|
211 |
endif |
|
196 | 212 |
|
197 | 213 |
%.o: %.c |
198 | 214 |
$(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< |
199 | 215 |
|
200 | 216 |
clean: |
201 |
rm -f *.o *.a *~ $(PROGS) \ |
|
202 |
gen-op-$(TARGET_ARCH).h opc-$(TARGET_ARCH).h op-$(TARGET_ARCH).h |
|
217 |
rm -f *.o *.a *~ $(PROGS) gen-op.h opc.h op.h |
|
218 |
|
|
219 |
install: all |
|
220 |
install -m 755 -s $(PROGS) $(prefix)/bin |
|
203 | 221 |
|
204 | 222 |
ifneq ($(wildcard .depend),) |
205 | 223 |
include .depend |
b/configure | ||
---|---|---|
18 | 18 |
|
19 | 19 |
# default parameters |
20 | 20 |
prefix="/usr/local" |
21 |
interp_prefix="/usr/gnemul/qemu-i386"
|
|
21 |
interp_prefix="/usr/gnemul/qemu-%M"
|
|
22 | 22 |
static="no" |
23 | 23 |
cross_prefix="" |
24 | 24 |
cc="gcc" |
... | ... | |
27 | 27 |
make="make" |
28 | 28 |
strip="strip" |
29 | 29 |
cpu=`uname -m` |
30 |
target_list="i386 i386-softmmu arm" |
|
30 |
target_list="i386 i386-softmmu arm sparc"
|
|
31 | 31 |
case "$cpu" in |
32 | 32 |
i386|i486|i586|i686|i86pc|BePC) |
33 | 33 |
cpu="i386" |
... | ... | |
193 | 193 |
echo "Standard options:" |
194 | 194 |
echo " --help print this message" |
195 | 195 |
echo " --prefix=PREFIX install in PREFIX [$prefix]" |
196 |
echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" |
|
196 |
echo " --interp-prefix=PREFIX where to find shared libraries, etc." |
|
197 |
echo " use %M for cpu name [$interp_prefix]" |
|
197 | 198 |
echo " --target-list=LIST set target list [$target_list]" |
198 | 199 |
echo "" |
199 | 200 |
echo "Advanced options (experts only):" |
... | ... | |
310 | 311 |
config_h=$target_dir/config.h |
311 | 312 |
target_cpu=`echo $target | cut -d '-' -f 1` |
312 | 313 |
target_bigendian="no" |
314 |
[ "$target_cpu" = "sparc" ] && target_bigendian=yes |
|
313 | 315 |
target_softmmu="no" |
314 | 316 |
if expr $target : '.*-softmmu' > /dev/null ; then |
315 | 317 |
target_softmmu="yes" |
... | ... | |
326 | 328 |
|
327 | 329 |
echo "include ../config-host.mak" >> $config_mak |
328 | 330 |
echo "#include \"../config-host.h\"" >> $config_h |
329 |
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $config_h |
|
331 |
|
|
332 |
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` |
|
333 |
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h |
|
330 | 334 |
|
331 | 335 |
if test "$target_cpu" = "i386" ; then |
332 | 336 |
echo "TARGET_ARCH=i386" >> $config_mak |
... | ... | |
336 | 340 |
echo "TARGET_ARCH=arm" >> $config_mak |
337 | 341 |
echo "#define TARGET_ARCH \"arm\"" >> $config_h |
338 | 342 |
echo "#define TARGET_ARM 1" >> $config_h |
343 |
elif test "$target_cpu" = "sparc" ; then |
|
344 |
echo "TARGET_ARCH=sparc" >> $config_mak |
|
345 |
echo "#define TARGET_ARCH \"sparc\"" >> $config_h |
|
346 |
echo "#define TARGET_SPARC 1" >> $config_h |
|
339 | 347 |
else |
340 | 348 |
echo "Unsupported target CPU" |
341 | 349 |
exit 1 |
Also available in: Unified diff