Message ID | 20220811164845.38083-3-anthony.perard@citrix.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Toolstack build system improvement, toward non-recursive makefiles | expand |
On 11.08.2022 18:48, Anthony PERARD wrote: > Setup proper dependencies with libacpi so we don't need to run "make > hvmloader" in the "all" target. ("build.o" new prerequisite isn't > exactly proper but a side effect of building the $(DSDT_FILES) is to > generate the "ssdt_*.h" needed by "build.o".) > > Make use if "-iquote" instead of a plain "-I". > > For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use > full path to "mkhex" instead of a relative one. Lastly, add "-f" flag > to "mv" to avoid a prompt in case the target already exist and we > don't have write permission. > > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> > Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> with one nit (which I'd be happy to take care of while committing): > @@ -73,12 +72,18 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\"" > ACPI_PATH = ../../libacpi > DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c > ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o > -$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" > +$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" > CFLAGS += -I$(ACPI_PATH) > vpath build.c $(ACPI_PATH) > vpath static_tables.c $(ACPI_PATH) > OBJS += $(ACPI_OBJS) > > +$(DSDT_FILES): acpi > + > +# Add DSDT_FILES as a prerequisite of "build.o" so that make will also > +# generates the "ssdt_*.h" headers needed by "build.o". s/generates/generate/ ? Jan
On Fri, Aug 12, 2022 at 03:36:12PM +0200, Jan Beulich wrote: > On 11.08.2022 18:48, Anthony PERARD wrote: > > Setup proper dependencies with libacpi so we don't need to run "make > > hvmloader" in the "all" target. ("build.o" new prerequisite isn't > > exactly proper but a side effect of building the $(DSDT_FILES) is to > > generate the "ssdt_*.h" needed by "build.o".) > > > > Make use if "-iquote" instead of a plain "-I". > > > > For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use > > full path to "mkhex" instead of a relative one. Lastly, add "-f" flag > > to "mv" to avoid a prompt in case the target already exist and we > > don't have write permission. > > > > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> > > Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> > > Reviewed-by: Jan Beulich <jbeulich@suse.com> > with one nit (which I'd be happy to take care of while committing): > > > @@ -73,12 +72,18 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\"" > > ACPI_PATH = ../../libacpi > > DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c > > ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o > > -$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" > > +$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" > > CFLAGS += -I$(ACPI_PATH) > > vpath build.c $(ACPI_PATH) > > vpath static_tables.c $(ACPI_PATH) > > OBJS += $(ACPI_OBJS) > > > > +$(DSDT_FILES): acpi > > + > > +# Add DSDT_FILES as a prerequisite of "build.o" so that make will also > > +# generates the "ssdt_*.h" headers needed by "build.o". > > s/generates/generate/ ? Yes, thanks.
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index b754220839..2bb5deb0c6 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -60,8 +60,7 @@ ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) endif .PHONY: all -all: acpi - $(MAKE) hvmloader +all: hvmloader .PHONY: acpi acpi: @@ -73,12 +72,18 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\"" ACPI_PATH = ../../libacpi DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o -$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" +$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\" CFLAGS += -I$(ACPI_PATH) vpath build.c $(ACPI_PATH) vpath static_tables.c $(ACPI_PATH) OBJS += $(ACPI_OBJS) +$(DSDT_FILES): acpi + +# Add DSDT_FILES as a prerequisite of "build.o" so that make will also +# generates the "ssdt_*.h" headers needed by "build.o". +build.o: $(DSDT_FILES) + hvmloader: $(OBJS) hvmloader.lds $(LD) $(LDFLAGS_DIRECT) -N -T hvmloader.lds -o $@ $(OBJS) @@ -87,21 +92,21 @@ roms.inc: $(ROMS) ifneq ($(ROMBIOS_ROM),) echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new echo "#endif" >> $@.new endif ifneq ($(STDVGA_ROM),) echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new echo "#endif" >> $@.new endif ifneq ($(CIRRUSVGA_ROM),) echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new echo "#endif" >> $@.new endif - mv $@.new $@ + mv -f $@.new $@ .PHONY: clean clean: