[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 08/19] acpi/hvmloader: Link ACPI object files directly
ACPI sources will be available to various component which will build them according to their own rules. ACPI's Makefile will only generate necessary source files. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> --- Changes in v3: * Replace '(shell pwd) with CURDIR * More use of addprefix .gitignore | 8 +++---- tools/firmware/hvmloader/Makefile | 11 ++++++++- tools/firmware/hvmloader/acpi/Makefile | 43 +++++++++++++++------------------- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index 43c6f93..9b2c405 100644 --- a/.gitignore +++ b/.gitignore @@ -127,13 +127,13 @@ tools/firmware/*bios/*bios*.txt tools/firmware/etherboot/gpxe/* tools/firmware/extboot/extboot.img tools/firmware/extboot/signrom -tools/firmware/hvmloader/acpi/mk_dsdt -tools/firmware/hvmloader/acpi/dsdt*.c -tools/firmware/hvmloader/acpi/dsdt_*.asl -tools/firmware/hvmloader/acpi/ssdt_*.h +tools/firmware/hvmloader/dsdt*.c +tools/firmware/hvmloader/dsdt_*.asl tools/firmware/hvmloader/hvmloader +tools/firmware/hvmloader/mk_dsdt tools/firmware/hvmloader/roms.h tools/firmware/hvmloader/roms.inc +tools/firmware/hvmloader/ssdt_*.h tools/firmware/rombios/BIOS-bochs-[^/]* tools/firmware/rombios/_rombios[^/]*_.c tools/firmware/rombios/rombios[^/]*.s diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 9f7357f..b6c5b83 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -20,6 +20,7 @@ XEN_ROOT = $(CURDIR)/../../.. include $(XEN_ROOT)/tools/firmware/Rules.mk +export ACPI_BUILD_DIR=$(CURDIR) SUBDIRS := acpi # The HVM loader is started in 32-bit mode at the address below: @@ -72,7 +73,15 @@ all: subdirs-all rombios.o: roms.inc smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\"" -hvmloader: $(OBJS) acpi/acpi.a +ACPI_PATH = acpi +ACPI_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c +ACPI_OBJS = $(patsubst %.c,%.o,$(ACPI_FILES)) build.o static_tables.o +$(ACPI_OBJS): CFLAGS += -I$(ACPI_PATH) -I. +vpath build.c $(ACPI_PATH) +vpath static_tables.c $(ACPI_PATH) +OBJS += $(ACPI_OBJS) + +hvmloader: $(OBJS) $(LD) $(LDFLAGS_DIRECT) -N -Ttext $(LOADADDR) -o hvmloader.tmp $^ $(OBJCOPY) hvmloader.tmp hvmloader rm -f hvmloader.tmp diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile index 703d67b..f635f18 100644 --- a/tools/firmware/hvmloader/acpi/Makefile +++ b/tools/firmware/hvmloader/acpi/Makefile @@ -15,36 +15,37 @@ XEN_ROOT = $(CURDIR)/../../../.. include $(XEN_ROOT)/tools/firmware/Rules.mk -C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c -OBJS = $(patsubst %.c,%.o,$(C_SRC)) +MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt -CFLAGS += $(CFLAGS_xeninclude) +# Sources to be generated +C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c) +H_SRC = $(addprefix $(ACPI_BUILD_DIR)/, ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h) vpath iasl $(PATH) -all: acpi.a +all: $(C_SRC) $(H_SRC) -ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl - iasl -vs -p $* -tc $< - sed -e 's/AmlCode/$*/g' $*.hex >$@ - rm -f $*.hex $*.aml +$(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl iasl + iasl -vs -p $(ACPI_BUILD_DIR)/$* -tc $< + sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex >$@ + rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex) -mk_dsdt: mk_dsdt.c +$(MK_DSDT): mk_dsdt.c $(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_xeninclude) -o $@ mk_dsdt.c -dsdt_anycpu_qemu_xen.asl: dsdt.asl mk_dsdt +$(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl $(MK_DSDT) awk 'NR > 1 {print s} {s=$$0}' $< > $@ - ./mk_dsdt --debug=$(debug) --dm-version qemu-xen >> $@ + $(MK_DSDT) --debug=$(debug) --dm-version qemu-xen >> $@ # NB. awk invocation is a portable alternative to 'head -n -1' -dsdt_%cpu.asl: dsdt.asl mk_dsdt +$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl $(MK_DSDT) awk 'NR > 1 {print s} {s=$$0}' $< > $@ - ./mk_dsdt --debug=$(debug) --maxcpu $* >> $@ + $(MK_DSDT) --debug=$(debug) --maxcpu $* >> $@ -$(filter dsdt_%.c,$(C_SRC)): %.c: iasl %.asl - iasl -vs -p $* -tc $*.asl - sed -e 's/AmlCode/$*/g' $*.hex >$@ +$(C_SRC): $(ACPI_BUILD_DIR)/%.c: iasl $(ACPI_BUILD_DIR)/%.asl + iasl -vs -p $(ACPI_BUILD_DIR)/$* -tc $(ACPI_BUILD_DIR)/$*.asl + sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex >$@ echo "int $*_len=sizeof($*);" >>$@ - rm -f $*.aml $*.hex + rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex) iasl: @echo @@ -54,14 +55,8 @@ iasl: @echo @exit 1 -build.o: ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h - -acpi.a: $(OBJS) - $(AR) rc $@ $(OBJS) - clean: - rm -rf *.a *.o $(IASL_VER) $(IASL_VER).tar.gz $(DEPS) - rm -rf ssdt_*.h dsdt*.c *~ *.aml *.hex mk_dsdt dsdt_*.asl + rm -fr $(C_SRC) $(H_SRC) $(MK_DSDT) $(patsubst %.c,%.asl,$(C_SRC)) distclean: clean -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |