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