~vcs-imports/qemu/git

350 by bellard
build all targets at the same time
1
include config.mak
2
1186 by bellard
x86_64 target support
3
TARGET_BASE_ARCH:=$(TARGET_ARCH)
4
ifeq ($(TARGET_ARCH), x86_64)
5
TARGET_BASE_ARCH:=i386
6
endif
3274 by ths
Code provision for n32/n64 mips userland emulation. Not functional yet.
7
ifeq ($(TARGET_ARCH), mipsn32)
8
TARGET_BASE_ARCH:=mips
9
endif
2554 by ths
MIPS64 configurations.
10
ifeq ($(TARGET_ARCH), mips64)
11
TARGET_BASE_ARCH:=mips
12
endif
1517 by bellard
ppc64 target
13
ifeq ($(TARGET_ARCH), ppc64)
14
TARGET_BASE_ARCH:=ppc
15
endif
3377 by j_mayer
Provision for PowerPC 64 with hypervisor mode support - not enabled for now.
16
ifeq ($(TARGET_ARCH), ppc64h)
17
TARGET_BASE_ARCH:=ppc
18
endif
2710 by j_mayer
New target for embedded PowerPC emulation (only system emulation, for now).
19
ifeq ($(TARGET_ARCH), ppcemb)
20
TARGET_BASE_ARCH:=ppc
21
endif
1249 by bellard
sparc64 support (Blue Swirl)
22
ifeq ($(TARGET_ARCH), sparc64)
23
TARGET_BASE_ARCH:=sparc
24
endif
1186 by bellard
x86_64 target support
25
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
3533 by bellard
compile common code once
26
VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw
4636 by balrog
Improve dependencies generation (malc).
27
CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MT $@ -MP -DNEED_CPU_H
1186 by bellard
x86_64 target support
28
#CFLAGS+=-Werror
350 by bellard
build all targets at the same time
29
LIBS=
689 by bellard
win32 port (initial patch by kazu)
30
DYNGEN=../dyngen$(EXESUF)
385 by bellard
new directory structure - changed naming of qemu and vl
31
# user emulator name
3885 by bellard
fixed ppc64abi32 executable name
32
ifndef TARGET_ARCH2
1886 by bellard
correct qemu-system-mipsel naming
33
TARGET_ARCH2=$(TARGET_ARCH)
3885 by bellard
fixed ppc64abi32 executable name
34
endif
1175 by bellard
big endian ARM support (Lennert Buytenhek)
35
ifeq ($(TARGET_ARCH),arm)
36
  ifeq ($(TARGET_WORDS_BIGENDIAN),yes)
1886 by bellard
correct qemu-system-mipsel naming
37
    TARGET_ARCH2=armeb
1175 by bellard
big endian ARM support (Lennert Buytenhek)
38
  endif
1886 by bellard
correct qemu-system-mipsel naming
39
endif
1984 by pbrook
Add big-endian SH4-user target
40
ifeq ($(TARGET_ARCH),sh4)
41
  ifeq ($(TARGET_WORDS_BIGENDIAN),yes)
42
    TARGET_ARCH2=sh4eb
43
  endif
44
endif
1691 by bellard
mipsel target
45
ifeq ($(TARGET_ARCH),mips)
1886 by bellard
correct qemu-system-mipsel naming
46
  ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
47
    TARGET_ARCH2=mipsel
1691 by bellard
mipsel target
48
  endif
1886 by bellard
correct qemu-system-mipsel naming
49
endif
3274 by ths
Code provision for n32/n64 mips userland emulation. Not functional yet.
50
ifeq ($(TARGET_ARCH),mipsn32)
51
  ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
52
    TARGET_ARCH2=mipsn32el
53
  endif
54
endif
2554 by ths
MIPS64 configurations.
55
ifeq ($(TARGET_ARCH),mips64)
56
  ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
57
    TARGET_ARCH2=mips64el
58
  endif
59
endif
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
60
61
ifdef CONFIG_USER_ONLY
62
# user emulator name
63
QEMU_PROG=qemu-$(TARGET_ARCH2)
64
else
385 by bellard
new directory structure - changed naming of qemu and vl
65
# system emulator name
719 by bellard
PowerPC system emulation fixes (Jocelyn Mayer)
66
ifeq ($(TARGET_ARCH), i386)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
67
QEMU_PROG=qemu$(EXESUF)
68
else
69
QEMU_PROG=qemu-system-$(TARGET_ARCH2)$(EXESUF)
70
endif
71
endif
72
73
PROGS=$(QEMU_PROG)
350 by bellard
build all targets at the same time
74
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
75
# We require -O2 to avoid the stack setup prologue in EXIT_TB
5196 by blueswir1
Enable gcc flag -Wwrite-strings
76
OP_CFLAGS := -O2 -g -fno-strict-aliasing
77
OP_CFLAGS += -Wall -Wundef -Wendif-labels -Wwrite-strings
2485 by ths
Disable compiler options dangerous for op compilation.
78
79
# cc-option
80
# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0)
81
82
cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
83
              > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
84
85
OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "")
86
OP_CFLAGS+=$(call cc-option, -fno-gcse, "")
87
OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "")
88
OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "")
89
OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "")
90
OP_CFLAGS+=$(call cc-option, -fno-align-labels, "")
91
OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "")
92
OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, ""))
3154 by ths
Stop the compiler from using section anchors.
93
OP_CFLAGS+=$(call cc-option, -fno-section-anchors, "")
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
94
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
95
HELPER_CFLAGS=
96
350 by bellard
build all targets at the same time
97
ifeq ($(ARCH),i386)
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
98
HELPER_CFLAGS+=-fomit-frame-pointer
99
OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer
4326 by aurel32
Qemu 32-bit i386, gcc >= 3.4 spill error fix
100
# op.c and helper.c need this on 32-bit x86 system to avoid
101
# a compiler spill error. This can probably go away
102
# once the SSE ops have been converted to TCG
103
ifeq ($(HAVE_GT_GCC_3_3), true)
104
I386_CFLAGS=-march=i586 -mtune=i686
105
endif
667 by bellard
initial x86-64 host support (Gwenole Beauchesne)
106
endif
107
350 by bellard
build all targets at the same time
108
ifeq ($(ARCH),ppc)
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
109
CPPFLAGS+= -D__powerpc__
4696 by malc
Add -mlongcall for PPC host (needed for MIPS for instance)
110
OP_CFLAGS+= -mlongcall
350 by bellard
build all targets at the same time
111
endif
112
113
ifeq ($(ARCH),sparc)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
114
  CFLAGS+=-ffixed-g2 -ffixed-g3
2679 by blueswir1
Sparc host update (Ben Taylor, Martin Bochnig)
115
  OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
116
  ifeq ($(CONFIG_SOLARIS),yes)
117
    OP_CFLAGS+=-fno-omit-frame-pointer
118
  else
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
119
    CFLAGS+=-ffixed-g1 -ffixed-g6
120
    HELPER_CFLAGS+=-ffixed-i0
2679 by blueswir1
Sparc host update (Ben Taylor, Martin Bochnig)
121
  endif
1971 by bellard
Solaris/SPARC host port (Ben Taylor)
122
endif
350 by bellard
build all targets at the same time
123
124
ifeq ($(ARCH),sparc64)
2679 by blueswir1
Sparc host update (Ben Taylor, Martin Bochnig)
125
  OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0
126
  ifneq ($(CONFIG_SOLARIS),yes)
4942 by blueswir1
Try to avoid glibc global register mangling, again
127
    CFLAGS+=-ffixed-g5 -ffixed-g6 -ffixed-g7
128
    OP_CFLAGS+=-ffixed-g5 -ffixed-g6 -ffixed-g7
129
  else
130
    CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
2679 by blueswir1
Sparc host update (Ben Taylor, Martin Bochnig)
131
  endif
350 by bellard
build all targets at the same time
132
endif
133
134
ifeq ($(ARCH),alpha)
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
135
# -msmall-data is not used for OP_CFLAGS because we want two-instruction
136
# relocations for the constant constructions
350 by bellard
build all targets at the same time
137
# Ensure there's only a single GP
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
138
CFLAGS+=-msmall-data
350 by bellard
build all targets at the same time
139
endif
140
4188 by aurel32
HPPA (PA-RISC) host support
141
ifeq ($(ARCH),hppa)
142
OP_CFLAGS=-O1 -fno-delayed-branch
143
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
144
endif
145
350 by bellard
build all targets at the same time
146
ifeq ($(ARCH),ia64)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
147
CFLAGS+=-mno-sdata
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
148
OP_CFLAGS+=-mno-sdata
350 by bellard
build all targets at the same time
149
endif
150
151
ifeq ($(ARCH),arm)
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
152
OP_CFLAGS+=-mno-sched-prolog -fno-omit-frame-pointer
350 by bellard
build all targets at the same time
153
endif
154
355 by bellard
m68k host port (Richard Zidlicky)
155
ifeq ($(ARCH),m68k)
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
156
OP_CFLAGS+=-fomit-frame-pointer
157
endif
158
159
ifeq ($(ARCH),mips)
2778 by ths
Another bunch of mips host support.
160
OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0
2554 by ths
MIPS64 configurations.
161
endif
162
163
ifeq ($(ARCH),mips64)
2778 by ths
Another bunch of mips host support.
164
OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
165
endif
166
167
CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
168
LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
2679 by blueswir1
Sparc host update (Ben Taylor, Martin Bochnig)
169
OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
350 by bellard
build all targets at the same time
170
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
171
CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
350 by bellard
build all targets at the same time
172
LIBS+=-lm
689 by bellard
win32 port (initial patch by kazu)
173
ifdef CONFIG_WIN32
1013 by bellard
virtual console support - slirp for win32 support
174
LIBS+=-lwinmm -lws2_32 -liphlpapi
689 by bellard
win32 port (initial patch by kazu)
175
endif
1848 by bellard
Solaris port (Ben Taylor)
176
ifdef CONFIG_SOLARIS
177
LIBS+=-lsocket -lnsl -lresolv
2567 by ths
Solaris 9/x86 support, by Ben Taylor.
178
ifdef NEEDS_LIBSUNMATH
179
LIBS+=-lsunmath
180
LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib
181
OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
182
CFLAGS+=-I/opt/SUNWspro/prod/include/cc
183
endif
184
endif
185
186
all: $(PROGS)
187
188
#########################################################
350 by bellard
build all targets at the same time
189
# cpu emulator library
3933 by bellard
use the TCG code generator
190
LIBOBJS=exec.o kqemu.o translate-all.o cpu-exec.o\
4084 by blueswir1
Prepare for op.c removal and zero legacy ops
191
        translate.o host-utils.o
4401 by blueswir1
Rename CONFIG_NO_DYNGEN_OP to CONFIG_DYNGEN_OP to avoid double negatives
192
ifdef CONFIG_DYNGEN_OP
4538 by ths
Fix parallel builds for dyngen, by Jason Wessel.
193
exec.o: dyngen-opc.h
4084 by blueswir1
Prepare for op.c removal and zero legacy ops
194
LIBOBJS+=op.o
195
endif
3933 by bellard
use the TCG code generator
196
# TCG code generator
197
LIBOBJS+= tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o
198
CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH)
3984 by blueswir1
Preliminary Sparc TCG target
199
ifeq ($(ARCH),sparc64)
200
CPPFLAGS+=-I$(SRC_PATH)/tcg/sparc
201
endif
1327 by bellard
soft float support
202
ifdef CONFIG_SOFTFLOAT
203
LIBOBJS+=fpu/softfloat.o
204
else
205
LIBOBJS+=fpu/softfloat-native.o
206
endif
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
207
CPPFLAGS+=-I$(SRC_PATH)/fpu
4592 by bellard
consistent naming for i386 TCG helper file
208
LIBOBJS+= op_helper.o helper.o
1083 by bellard
full system SPARC emulation (Blue Swirl)
209
1304 by bellard
ARM VFP support (Paul Brook)
210
ifeq ($(TARGET_BASE_ARCH), arm)
4592 by bellard
consistent naming for i386 TCG helper file
211
LIBOBJS+= neon_helper.o iwmmxt_helper.o
2187 by pbrook
ColdFire target.
212
endif
213
2597 by j_mayer
Rules needed to compile linux user-mode alpha target.
214
ifeq ($(TARGET_BASE_ARCH), alpha)
4592 by bellard
consistent naming for i386 TCG helper file
215
LIBOBJS+= alpha_palcode.o
2597 by j_mayer
Rules needed to compile linux user-mode alpha target.
216
endif
217
3358 by ths
Add CRIS configuration bits, by Edgar E. Iglesias.
218
ifeq ($(TARGET_BASE_ARCH), cris)
219
LIBOBJS+= cris-dis.o
220
221
ifndef CONFIG_USER_ONLY
222
LIBOBJS+= mmu.o
223
endif
224
endif
225
350 by bellard
build all targets at the same time
226
# NOTE: the disassembler code is only needed for debugging
3163 by ths
find -type f | xargs sed -i 's/[\t ]$//g' # on most files
227
LIBOBJS+=disas.o
350 by bellard
build all targets at the same time
228
ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386)
667 by bellard
initial x86-64 host support (Gwenole Beauchesne)
229
USE_I386_DIS=y
230
endif
1186 by bellard
x86_64 target support
231
ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64)
667 by bellard
initial x86-64 host support (Gwenole Beauchesne)
232
USE_I386_DIS=y
233
endif
234
ifdef USE_I386_DIS
350 by bellard
build all targets at the same time
235
LIBOBJS+=i386-dis.o
236
endif
237
ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha)
238
LIBOBJS+=alpha-dis.o
239
endif
1517 by bellard
ppc64 target
240
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
350 by bellard
build all targets at the same time
241
LIBOBJS+=ppc-dis.o
242
endif
2554 by ths
MIPS64 configurations.
243
ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips)
1458 by bellard
MIPS target (Jocelyn Mayer)
244
LIBOBJS+=mips-dis.o
245
endif
1249 by bellard
sparc64 support (Blue Swirl)
246
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
350 by bellard
build all targets at the same time
247
LIBOBJS+=sparc-dis.o
248
endif
249
ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm)
250
LIBOBJS+=arm-dis.o
251
endif
1598 by bellard
m68k disassembler (Paul Brook)
252
ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k)
253
LIBOBJS+=m68k-dis.o
254
endif
1854 by bellard
sh4 target (Samuel Tardieu)
255
ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4)
256
LIBOBJS+=sh4-dis.o
257
endif
4188 by aurel32
HPPA (PA-RISC) host support
258
ifeq ($(findstring hppa, $(TARGET_BASE_ARCH) $(ARCH)),hppa)
259
LIBOBJS+=hppa-dis.o
260
endif
3094 by ths
s390 disassembler support, by Ulrich Hecht.
261
ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390)
262
LIBOBJS+=s390-dis.o
263
endif
350 by bellard
build all targets at the same time
264
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
265
# libqemu
266
4401 by blueswir1
Rename CONFIG_NO_DYNGEN_OP to CONFIG_DYNGEN_OP to avoid double negatives
267
ifdef CONFIG_DYNGEN_OP
3937 by pbrook
Add missing dependencies on generated files (for parallel build).
268
OPC_H = gen-op.h dyngen-opc.h op.h
4084 by blueswir1
Prepare for op.c removal and zero legacy ops
269
endif
3937 by pbrook
Add missing dependencies on generated files (for parallel build).
270
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
271
libqemu.a: $(LIBOBJS)
272
	rm -f $@
273
	$(AR) rcs $@ $(LIBOBJS)
274
3937 by pbrook
Add missing dependencies on generated files (for parallel build).
275
translate.o: translate.c cpu.h $(OPC_H)
276
277
translate-all.o: translate-all.c cpu.h $(OPC_H)
278
279
tcg/tcg.o: cpu.h $(OPC_H)
280
281
tcg/tcg-dyngen.o: $(OPC_H)
282
283
tcg/tcg-runtime.o: $(OPC_H)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
284
285
op.h: op.o $(DYNGEN)
286
	$(DYNGEN) -o $@ $<
287
3933 by bellard
use the TCG code generator
288
dyngen-opc.h: op.o $(DYNGEN)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
289
	$(DYNGEN) -c -o $@ $<
290
291
gen-op.h: op.o $(DYNGEN)
292
	$(DYNGEN) -g -o $@ $<
293
294
op.o: op.c
4326 by aurel32
Qemu 32-bit i386, gcc >= 3.4 spill error fix
295
	$(CC) $(OP_CFLAGS) $(CPPFLAGS) $(I386_CFLAGS) -c -o $@ $<
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
296
4316 by aurel32
remove target ifdefs from vl.c
297
machine.o: machine.c
298
	$(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $<
299
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
300
# HELPER_CFLAGS is used for all the code compiled with static register
301
# variables
4592 by bellard
consistent naming for i386 TCG helper file
302
op_helper.o: op_helper.c
4326 by aurel32
Qemu 32-bit i386, gcc >= 3.4 spill error fix
303
	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(I386_CFLAGS) -c -o $@ $<
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
304
4412 by aurel32
Fix parallel build (broken by commit r4407)
305
cpu-exec.o: cpu-exec.c $(OPC_H)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
306
	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
307
308
#########################################################
309
# Linux user emulator target
310
311
ifdef CONFIG_LINUX_USER
312
313
ifndef TARGET_ABI_DIR
314
  TARGET_ABI_DIR=$(TARGET_ARCH)
315
endif
4174 by aurel32
Move target-arm/nwfpe into linux-user/arm/nwfpe
316
VPATH+=:$(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
317
CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
318
319
ifdef CONFIG_STATIC
320
LDFLAGS+=-static
321
endif
322
323
ifeq ($(ARCH),i386)
324
ifdef TARGET_GPROF
325
USE_I386_LD=y
326
endif
327
ifdef CONFIG_STATIC
328
USE_I386_LD=y
329
endif
330
ifdef USE_I386_LD
331
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
332
else
333
# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object
334
# that the kernel ELF loader considers as an executable. I think this
335
# is the simplest way to make it self virtualizable!
336
LDFLAGS+=-Wl,-shared
337
endif
338
endif
339
340
ifeq ($(ARCH),x86_64)
341
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
342
endif
343
344
ifeq ($(ARCH),ppc)
345
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
346
endif
347
4921 by malc
Preliminary PPC64/Linux host support
348
ifeq ($(ARCH),ppc64)
349
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
350
endif
351
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
352
ifeq ($(ARCH),s390)
353
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
354
endif
355
356
ifeq ($(ARCH),sparc)
357
# -static is used to avoid g1/g3 usage by the dynamic linker	
358
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
359
endif
360
361
ifeq ($(ARCH),sparc64)
362
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
363
endif
364
365
ifeq ($(ARCH),alpha)
366
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
367
endif
368
369
ifeq ($(ARCH),ia64)
370
LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld
371
endif
372
373
ifeq ($(ARCH),arm)
374
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
375
endif
376
377
ifeq ($(ARCH),m68k)
378
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
379
endif
380
381
ifeq ($(ARCH),mips)
382
ifeq ($(WORDS_BIGENDIAN),yes)
383
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
384
else
385
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
386
endif
387
endif
388
389
ifeq ($(ARCH),mips64)
390
ifeq ($(WORDS_BIGENDIAN),yes)
391
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
392
else
393
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
394
endif
395
endif
396
4699 by pbrook
Prevent guest reusing host memory allocations.
397
OBJS= main.o syscall.o strace.o mmap.o signal.o path.o thunk.o \
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
398
      elfload.o linuxload.o uaccess.o
399
LIBS+= $(AIOLIBS)
400
ifdef TARGET_HAS_BFLT
401
OBJS+= flatload.o
402
endif
403
ifdef TARGET_HAS_ELFLOAD32
404
OBJS+= elfload32.o
405
elfload32.o: elfload.c
406
endif
407
408
ifeq ($(TARGET_ARCH), i386)
409
OBJS+= vm86.o
410
endif
411
ifeq ($(TARGET_ARCH), arm)
412
OBJS+=nwfpe/fpa11.o nwfpe/fpa11_cpdo.o \
413
nwfpe/fpa11_cpdt.o nwfpe/fpa11_cprt.o nwfpe/fpopcode.o nwfpe/single_cpdo.o \
414
 nwfpe/double_cpdo.o nwfpe/extended_cpdo.o arm-semi.o
415
endif
416
ifeq ($(TARGET_ARCH), m68k)
417
OBJS+= m68k-sim.o m68k-semi.o
418
endif
419
1362 by bellard
gdb support for user mode (Paul Brook)
420
ifdef CONFIG_GDBSTUB
421
OBJS+=gdbstub.o
422
endif
350 by bellard
build all targets at the same time
423
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
424
OBJS+= libqemu.a
425
426
# Note: this is a workaround. The real fix is to avoid compiling
427
# cpu_signal_handler() in cpu-exec.c.
428
signal.o: signal.c
429
	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
430
4596 by pbrook
Don't link usermode emulation against libqemu_common.a
431
$(QEMU_PROG): $(OBJS) ../libqemu_user.a
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
432
	$(CC) $(LDFLAGS) -o $@ $^  $(LIBS)
350 by bellard
build all targets at the same time
433
ifeq ($(ARCH),alpha)
434
# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of
435
# the address space (31 bit so sign extending doesn't matter)
436
	echo -ne '\001\000\000\000' | dd of=qemu bs=1 seek=48 count=4 conv=notrunc
437
endif
438
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
439
endif #CONFIG_LINUX_USER
440
441
#########################################################
442
# Darwin user emulator target
443
444
ifdef CONFIG_DARWIN_USER
445
446
VPATH+=:$(SRC_PATH)/darwin-user
447
CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
448
449
# Leave some space for the regular program loading zone
450
LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000
451
452
LIBS+=-lmx
453
4699 by pbrook
Prevent guest reusing host memory allocations.
454
OBJS= main.o commpage.o machload.o mmap.o signal.o syscall.o thunk.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
455
456
OBJS+= libqemu.a
457
458
ifdef CONFIG_GDBSTUB
459
OBJS+=gdbstub.o
460
endif
461
462
# Note: this is a workaround. The real fix is to avoid compiling
463
# cpu_signal_handler() in cpu-exec.c.
464
signal.o: signal.c
465
	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
466
467
$(QEMU_PROG): $(OBJS)
468
	$(CC) $(LDFLAGS) -o $@ $^  $(LIBS)
469
470
endif #CONFIG_DARWIN_USER
471
472
#########################################################
473
# System emulator target
474
ifndef CONFIG_USER_ONLY
475
4960 by aliguori
Add IP checksumming functions to qemu (Gerd Hoffmann)
476
OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o net-checksum.o
5286 by aliguori
Refactor AIO to allow multiple AIO implementations
477
OBJS+=fw_cfg.o aio.o
3804 by ths
Split block-raw.c into block-raw-posix.c and block-raw-win32.c, by
478
ifdef CONFIG_WIN32
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
479
OBJS+=block-raw-win32.o
3804 by ths
Split block-raw.c into block-raw-posix.c and block-raw-win32.c, by
480
else
5186 by aliguori
Only build compatfd when using AIO and make sure to always init AIO
481
OBJS+=block-raw-posix.o
482
endif
483
484
ifdef CONFIG_AIO
485
OBJS+=compatfd.o
3804 by ths
Split block-raw.c into block-raw-posix.c and block-raw-win32.c, by
486
endif
719 by bellard
PowerPC system emulation fixes (Jocelyn Mayer)
487
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
488
LIBS+=-lz
1577 by bellard
merged 15a_aqemu.patch audio patch (malc)
489
ifdef CONFIG_ALSA
490
LIBS += -lasound
491
endif
3906 by balrog
pthreads-based audio and miscellaneous audio clean-up (malc).
492
ifdef CONFIG_ESD
493
LIBS += -lesd
494
endif
4816 by malc
Pulseaudio driver
495
ifdef CONFIG_PA
496
LIBS += -lpulse-simple
497
endif
1577 by bellard
merged 15a_aqemu.patch audio patch (malc)
498
ifdef CONFIG_DSOUND
499
LIBS += -lole32 -ldxguid
500
endif
1143 by bellard
FMOD configure options (malc)
501
ifdef CONFIG_FMOD
502
LIBS += $(CONFIG_FMOD_LIB)
1121 by bellard
audio merge (malc)
503
endif
5034 by blueswir1
Fix OSS on OpenBSD
504
ifdef CONFIG_OSS
505
LIBS += $(CONFIG_OSS_LIB)
506
endif
3533 by bellard
compile common code once
507
508
SOUND_HW = sb16.o es1370.o
3906 by balrog
pthreads-based audio and miscellaneous audio clean-up (malc).
509
ifdef CONFIG_AC97
510
SOUND_HW += ac97.o
511
endif
1577 by bellard
merged 15a_aqemu.patch audio patch (malc)
512
ifdef CONFIG_ADLIB
513
SOUND_HW += fmopl.o adlib.o
514
endif
3910 by balrog
Gravis Ultrasound GF1 sound card emulation (malc).
515
ifdef CONFIG_GUS
516
SOUND_HW += gus.o gusemu_hal.o gusemu_mixer.o
517
endif
4730 by malc
ISA version of CS4231A
518
ifdef CONFIG_CS4231A
519
SOUND_HW += cs4231a.o
520
endif
1121 by bellard
audio merge (malc)
521
3126 by ths
VeNCrypt basic TLS support, by Daniel P. Berrange.
522
ifdef CONFIG_VNC_TLS
523
CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS)
524
LIBS += $(CONFIG_VNC_TLS_LIBS)
525
endif
526
5333 by balrog
Implement a HCI passthrough to host.
527
ifdef CONFIG_BLUEZ
528
LIBS += $(CONFIG_BLUEZ_LIBS)
529
endif
530
1932 by pbrook
Rearrange SCSI disk emulation code.
531
# SCSI layer
3996 by blueswir1
Let ESP SCSI adapter to be usable outside sun4m (Herv�oussineau)
532
OBJS+= lsi53c895a.o esp.o
1932 by pbrook
Rearrange SCSI disk emulation code.
533
1596 by bellard
USB user interface
534
# USB layer
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
535
OBJS+= usb-ohci.o
1596 by bellard
USB user interface
536
2574 by ths
Eepro100 emulation, by Stefan Weil.
537
# EEPROM emulation
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
538
OBJS += eeprom93xx.o
2574 by ths
Eepro100 emulation, by Stefan Weil.
539
1738 by pbrook
Allow selection of emulated network card.
540
# PCI network cards
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
541
OBJS += eepro100.o
542
OBJS += ne2000.o
543
OBJS += pcnet.o
544
OBJS += rtl8139.o
3938 by balrog
E1000 NIC emulation (Nir Peleg, patch from Dor Laor).
545
OBJS += e1000.o
1738 by pbrook
Allow selection of emulated network card.
546
1186 by bellard
x86_64 target support
547
ifeq ($(TARGET_BASE_ARCH), i386)
719 by bellard
PowerPC system emulation fixes (Jocelyn Mayer)
548
# Hardware support
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
549
OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o
550
OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
551
OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o
552
OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o
2746 by balrog
Spitz PDA, example PXA270 machine (four similar models).
553
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
719 by bellard
PowerPC system emulation fixes (Jocelyn Mayer)
554
endif
1517 by bellard
ppc64 target
555
ifeq ($(TARGET_BASE_ARCH), ppc)
3465 by j_mayer
* sort the PowerPC target object files
556
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
557
# shared objects
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
558
OBJS+= ppc.o ide.o vga.o $(SOUND_HW) dma.o openpic.o
3465 by j_mayer
* sort the PowerPC target object files
559
# PREP target
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
560
OBJS+= pckbd.o ps2.o serial.o i8259.o i8254.o fdc.o m48t59.o mc146818rtc.o
561
OBJS+= prep_pci.o ppc_prep.o
3465 by j_mayer
* sort the PowerPC target object files
562
# Mac shared devices
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
563
OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o
3465 by j_mayer
* sort the PowerPC target object files
564
# OldWorld PowerMac
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
565
OBJS+= heathrow_pic.o grackle_pci.o ppc_oldworld.o
3465 by j_mayer
* sort the PowerPC target object files
566
# NewWorld PowerMac
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
567
OBJS+= unin_pci.o ppc_chrp.o
3331 by j_mayer
Share devices that may be useful for all PowerPC 40x and 440 implementations.
568
# PowerPC 4xx boards
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
569
OBJS+= pflash_cfi02.o ppc4xx_devs.o ppc405_uc.o ppc405_boards.o
719 by bellard
PowerPC system emulation fixes (Jocelyn Mayer)
570
endif
2554 by ths
MIPS64 configurations.
571
ifeq ($(TARGET_BASE_ARCH), mips)
4166 by aurel32
Simplify PICA 61 emulation
572
OBJS+= mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o
4153 by aurel32
MIPS Magnum R4000 machine
573
OBJS+= mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o rc4030.o
574
OBJS+= g364fb.o jazz_led.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
575
OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o
4153 by aurel32
MIPS Magnum R4000 machine
576
OBJS+= piix_pci.o parallel.o cirrus_vga.o pcspk.o $(SOUND_HW)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
577
OBJS+= mipsnet.o
578
OBJS+= pflash_cfi01.o
4153 by aurel32
MIPS Magnum R4000 machine
579
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
1458 by bellard
MIPS target (Jocelyn Mayer)
580
endif
3358 by ths
Add CRIS configuration bits, by Edgar E. Iglesias.
581
ifeq ($(TARGET_BASE_ARCH), cris)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
582
OBJS+= etraxfs.o
4419 by edgar_igl
Update the etrax machine.
583
OBJS+= etraxfs_dma.o
4044 by edgar_igl
* Add a model of the ETRAX interrupt controller.
584
OBJS+= etraxfs_pic.o
4419 by edgar_igl
Update the etrax machine.
585
OBJS+= etraxfs_eth.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
586
OBJS+= etraxfs_timer.o
587
OBJS+= etraxfs_ser.o
4044 by edgar_igl
* Add a model of the ETRAX interrupt controller.
588
589
OBJS+= ptimer.o
4419 by edgar_igl
Update the etrax machine.
590
OBJS+= pflash_cfi02.o
3358 by ths
Add CRIS configuration bits, by Edgar E. Iglesias.
591
endif
1249 by bellard
sparc64 support (Blue Swirl)
592
ifeq ($(TARGET_BASE_ARCH), sparc)
1456 by bellard
sparc64 marge (Blue Swirl)
593
ifeq ($(TARGET_ARCH), sparc64)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
594
OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o
595
OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o
596
OBJS+= cirrus_vga.o parallel.o ptimer.o
1456 by bellard
sparc64 marge (Blue Swirl)
597
else
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
598
OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o
3996 by blueswir1
Let ESP SCSI adapter to be usable outside sun4m (Herv�oussineau)
599
OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o sparc32_dma.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
600
OBJS+= cs4231.o ptimer.o eccmemctl.o sbi.o sun4c_intctl.o
1456 by bellard
sparc64 marge (Blue Swirl)
601
endif
1083 by bellard
full system SPARC emulation (Blue Swirl)
602
endif
1654 by bellard
ARM system emulation (Paul Brook)
603
ifeq ($(TARGET_BASE_ARCH), arm)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
604
OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o
605
OBJS+= arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o
606
OBJS+= versatile_pci.o ptimer.o
607
OBJS+= realview_gic.o realview.o arm_sysctl.o mpcore.o
608
OBJS+= armv7m.o armv7m_nvic.o stellaris.o pl022.o stellaris_enet.o
609
OBJS+= pl061.o
610
OBJS+= arm-semi.o
611
OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o
612
OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
613
OBJS+= pflash_cfi01.o gumstix.o
4691 by balrog
TC6393XB system features (Dmitry Baryshkov).
614
OBJS+= zaurus.o ide.o serial.o nand.o ecc.o spitz.o tosa.o tc6393xb.o
4014 by balrog
Split OMAP DMA out to a file apart.
615
OBJS+= omap1.o omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o
4909 by balrog
Handle on-chip DMA controllers in one place, convert OMAP DMA to use it.
616
OBJS+= omap2.o omap_dss.o soc_dma.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
617
OBJS+= palm.o tsc210x.o
4221 by balrog
Inventra MUSB-HDRC host-mode USB.
618
OBJS+= nseries.o blizzard.o onenand.o vga.o cbus.o tusb6010.o usb-musb.o
5332 by balrog
Emulate a serial bluetooth HCI with H4+ extensions and attach to n8x0's UART.
619
OBJS+= tsc2005.o bt-hci-csr.o
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
620
OBJS+= mst_fpga.o mainstone.o
4237 by balrog
ARM: Marvell 88w8618 / MusicPal emulation (Jan Kiszka).
621
OBJS+= musicpal.o pflash_cfi02.o
2756 by balrog
Don't define HIGH_LATENCY for ARM, this was a workaround for an ALSA problem.
622
CPPFLAGS += -DHAS_AUDIO
1654 by bellard
ARM system emulation (Paul Brook)
623
endif
1854 by bellard
sh4 target (Samuel Tardieu)
624
ifeq ($(TARGET_BASE_ARCH), sh4)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
625
OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o
626
OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o
1854 by bellard
sh4 target (Samuel Tardieu)
627
endif
2841 by pbrook
m68k/ColdFire system emulation.
628
ifeq ($(TARGET_BASE_ARCH), m68k)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
629
OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
630
OBJS+= m68k-semi.o dummy_m68k.o
2841 by pbrook
m68k/ColdFire system emulation.
631
endif
689 by bellard
win32 port (initial patch by kazu)
632
ifdef CONFIG_GDBSTUB
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
633
OBJS+=gdbstub.o
689 by bellard
win32 port (initial patch by kazu)
634
endif
1308 by bellard
initial Cocoa support (Pierre d'Herbemont)
635
ifdef CONFIG_COCOA
1577 by bellard
merged 15a_aqemu.patch audio patch (malc)
636
COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit
637
ifdef CONFIG_COREAUDIO
638
COCOA_LIBS+=-framework CoreAudio
639
endif
1308 by bellard
initial Cocoa support (Pierre d'Herbemont)
640
endif
729 by bellard
probe static SDL link
641
ifdef CONFIG_SLIRP
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
642
CPPFLAGS+=-I$(SRC_PATH)/slirp
350 by bellard
build all targets at the same time
643
endif
644
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
645
LIBS+=$(AIOLIBS)
433 by bellard
enabled system emulator build on PowerPC - increased portability of soft mmu code
646
# specific flags are needed for non soft mmu emulator
647
ifdef CONFIG_STATIC
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
648
LDFLAGS+=-static
463 by bellard
static config for SDL
649
endif
977 by bellard
Darwin patch (initial patch by Pierre d'Herbemont)
650
ifndef CONFIG_DARWIN
691 by bellard
win32 cross compile fix
651
ifndef CONFIG_WIN32
1848 by bellard
Solaris port (Ben Taylor)
652
ifndef CONFIG_SOLARIS
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
653
LIBS+=-lutil
691 by bellard
win32 cross compile fix
654
endif
977 by bellard
Darwin patch (initial patch by Pierre d'Herbemont)
655
endif
1848 by bellard
Solaris port (Ben Taylor)
656
endif
1272 by bellard
kqemu support
657
ifdef TARGET_GPROF
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
658
vl.o: CFLAGS+=-p
659
LDFLAGS+=-p
1272 by bellard
kqemu support
660
endif
433 by bellard
enabled system emulator build on PowerPC - increased portability of soft mmu code
661
1355 by bellard
ia64 host support (David Mosberger)
662
ifeq ($(ARCH),ia64)
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
663
LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld
3687 by ths
Solaris build fixes, based on a patch by Ben Taylor.
664
endif
665
1577 by bellard
merged 15a_aqemu.patch audio patch (malc)
666
ifdef CONFIG_WIN32
667
SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole
668
endif
669
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
670
# profiling code
671
ifdef TARGET_GPROF
672
LDFLAGS+=-p
673
main.o: CFLAGS+=-p
2111 by bellard
disable -fomit-frame-pointer
674
endif
675
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
676
$(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a
4885 by ths
Add Virtual Distributed Ethernet native support, by Luca Bigliardi.
677
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS)
350 by bellard
build all targets at the same time
678
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
679
endif # !CONFIG_USER_ONLY
2194 by bellard
avoid regression on sparc-user and ppc-user
680
350 by bellard
build all targets at the same time
681
%.o: %.c
3926 by bellard
Makefile cleanup - more generic support of 32 bit compilation on x86_64
682
	$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
350 by bellard
build all targets at the same time
683
612 by bellard
added osdep.o and nwfpe
684
%.o: %.S
2280 by ths
Untangle the various CFLAGS/LDFLAGS flavours. Allow overriding the
685
	$(CC) $(CPPFLAGS) -c -o $@ $<
612 by bellard
added osdep.o and nwfpe
686
350 by bellard
build all targets at the same time
687
clean:
3933 by bellard
use the TCG code generator
688
	rm -f *.o *.a *~ $(PROGS) gen-op.h dyngen-opc.h op.h nwfpe/*.o fpu/*.o
689
	rm -f *.d */*.d tcg/*.o
385 by bellard
new directory structure - changed naming of qemu and vl
690
3163 by ths
find -type f | xargs sed -i 's/[\t ]$//g' # on most files
691
install: all
682 by bellard
install fix (Rusty Russel)
692
ifneq ($(PROGS),)
1816 by pbrook
Allow user to specify "install" utility.
693
	$(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)"
682 by bellard
install fix (Rusty Russel)
694
endif
350 by bellard
build all targets at the same time
695
3457 by j_mayer
Use cpp to generate correct build dependencies for target objects
696
# Include automatically generated dependency files
697
-include $(wildcard *.d */*.d)