20
20
# Default user QEMU flags. These are appended to the QEMU command calls.
21
21
QEMUFLAGS := -m 2G
22
22
23
+ # User controllable host C compiler.
24
+ HOST_CC := cc
25
+
23
26
# User controllable toolchain and toolchain prefix.
24
27
TOOLCHAIN :=
25
28
TOOLCHAIN_PREFIX :=
@@ -77,6 +80,20 @@ override USER_CFLAGS := $(CFLAGS)
77
80
override USER_CPPFLAGS := $(CPPFLAGS )
78
81
override USER_LDFLAGS := $(LDFLAGS )
79
82
83
+ override define SEABIOS_CALL =
84
+ $(MAKE ) -C seabios $(1 ) \
85
+ HOSTCC="$(HOST_CC ) " \
86
+ CC="$(CC ) " \
87
+ LD="$(LD ) " \
88
+ OBJCOPY="$(OBJCOPY ) " \
89
+ OBJDUMP="$(OBJDUMP ) " \
90
+ STRIP="$(STRIP ) " \
91
+ CFLAGS="$(USER_CFLAGS ) " \
92
+ CPPFLAGS="$(USER_CPPFLAGS ) " \
93
+ LDFLAGS="$(USER_LDFLAGS ) " \
94
+ EXTRAVERSION=\"$(SEABIOS_EXTRAVERSION ) \"
95
+ endef
96
+
80
97
# Internal C flags that should not be changed by the user.
81
98
override CFLAGS += \
82
99
-Wall \
@@ -99,7 +116,7 @@ override CPPFLAGS := \
99
116
-I uACPI/include \
100
117
-DUACPI_OVERRIDE_CONFIG \
101
118
-DBUILD_VERSION=\"$(BUILD_VERSION ) \" \
102
- -isystem freestnd-c-hdrs \
119
+ -isystem freestnd-c-hdrs/include \
103
120
$(CPPFLAGS ) \
104
121
-MMD \
105
122
-MP
@@ -261,13 +278,13 @@ endif
261
278
# Remove object files and the final executable.
262
279
.PHONY : clean
263
280
clean : seabios/.config
264
- $(MAKE ) -C seabios clean
281
+ $(call SEABIOS_CALL, clean)
265
282
rm -rf bin-$(ARCH ) obj-$(ARCH )
266
283
267
284
# Remove everything built and generated including downloaded dependencies.
268
285
.PHONY : distclean
269
286
distclean : seabios/.config
270
- $(MAKE ) -C seabios distclean
287
+ $(call SEABIOS_CALL, distclean)
271
288
rm -rf src/bins
272
289
rm -rf bin-* obj-* ovmf
273
290
@@ -287,16 +304,7 @@ uninstall:
287
304
SEABIOS_EXTRAVERSION := -CSMWrap-$(BUILD_VERSION )
288
305
.PHONY : seabios
289
306
seabios : seabios/.config
290
- $(MAKE ) -C seabios \
291
- CC=" $( CC) " \
292
- LD=" $( LD) " \
293
- OBJCOPY=" $( OBJCOPY) " \
294
- OBJDUMP=" $( OBJDUMP) " \
295
- STRIP=" $( STRIP) " \
296
- CFLAGS=" $( USER_CFLAGS) " \
297
- CPPFLAGS=" $( USER_CPPFLAGS) " \
298
- LDFLAGS=" $( USER_LDFLAGS) " \
299
- EXTRAVERSION=\" $(SEABIOS_EXTRAVERSION ) \"
307
+ $(call SEABIOS_CALL,)
300
308
301
309
src/bins/Csm16.h : GNUmakefile seabios/out/Csm16.bin
302
310
mkdir -p src/bins
@@ -308,13 +316,4 @@ src/bins/vgabios.h: GNUmakefile seabios/out/vgabios.bin
308
316
309
317
seabios/.config : GNUmakefile seabios-config
310
318
cp seabios-config seabios/.config
311
- $(MAKE ) -C seabios olddefconfig \
312
- CC=" $( CC) " \
313
- LD=" $( LD) " \
314
- OBJCOPY=" $( OBJCOPY) " \
315
- OBJDUMP=" $( OBJDUMP) " \
316
- STRIP=" $( STRIP) " \
317
- CFLAGS=" $( USER_CFLAGS) " \
318
- CPPFLAGS=" $( USER_CPPFLAGS) " \
319
- LDFLAGS=" $( USER_LDFLAGS) " \
320
- EXTRAVERSION=\" $(SEABIOS_EXTRAVERSION ) \"
319
+ $(call SEABIOS_CALL,olddefconfig)
0 commit comments