X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Externals%2FACPICA%2FMakefile;h=950f0abd15b827b7f7f1ea7a74ad46a73c537af3;hb=98bd9c0c8985c50c42231c116a4e18fedd47761e;hp=378a042dd2bd35171dcd45e542a0e8d3eb78e113;hpb=89602748a923ae015ea2fada59e0be9687801e79;p=tpg%2Facess2.git diff --git a/Externals/ACPICA/Makefile b/Externals/ACPICA/Makefile index 378a042d..950f0abd 100644 --- a/Externals/ACPICA/Makefile +++ b/Externals/ACPICA/Makefile @@ -2,24 +2,84 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../Makefile.cfg -COMPONENTS = utilities tables -BIN := ../$(ARCH)/libacpica.a +ACPI_DEBUG ?= no -ACPICAROOT := acpica-unix-20121114/ +BIN := ../Output/$(ARCH)-kernel/libacpica.a + +_VERS := $(patsubst acpica-unix-%.tar.gz,%,$(wildcard acpica-unix-*.tar.gz)) +_VERS := $(sort $(_VERS)) +_LATEST := $(lastword $(_VERS)) + +ifeq ($(ACPICAVER),) + ifeq ($(_LATEST),) + $(warning Unable to find an archive matching acpica-unix-%.tar.gz in Externals/ACPICA) + $(warning Go to https://www.acpica.org/downloads/ to get it) + $(error No ACPICA archive found, disable ACPI with 'USE_ACPICA=0') + endif + + ifneq ($(_LATEST),$(_VERS)) + $(warning Multiple archvies found, picked $(_LATEST)) + endif + ACPICAVER := $(_LATEST) +endif + +ACPICAROOT := acpica-unix-$(ACPICAVER)/ +ACPICA_ARCHIVE := acpica-unix-$(ACPICAVER).tar.gz COMPDIR := $(ACPICAROOT)source/components/ +KERNELDIR := ../../KernelLand/Kernel/ -CPPFLAGS += -I $(ACPICAROOT)source/include +CPPFLAGS += -I $(KERNELDIR)include -I$(KERNELDIR)arch/$(ARCHDIR)/include -D_MODULE_NAME_=\"ACPICA\" +CPPFLAGS += -I $(ACPICAROOT)source/include -D _ACESS -D __KERNEL__ +CPPFLAGS += -D ARCH=$(ARCH) -D ARCHDIR=$(ARCHDIR) -D PLATFORM=\"$(PLATFORM)\" -D ARCHDIR_IS_$(ARCHDIR)=1 -D PLATFORM_is_$(PLATFORM)=1 +CPPFLAGS += -D KERNEL_VERSION=$(KERNEL_VERSION) -ffreestanding +ifneq ($(ACPI_DEBUG),no) + CPPFLAGS += -D ACPI_DEBUG_OUTPUT=1 -D ACPI_DISASSEMBLER=1 +endif +CFLAGS += -Wall -fno-stack-protector -Wstrict-prototypes -std=gnu99 -g -SRCS := $(foreach comp,$(COMPONENTS),$(wildcard $(COMPDIR)$(comp)/*.c)) +SRCS := $(wildcard $(COMPDIR)*/*.c) OBJS := $(SRCS:$(COMPDIR)%.c=obj-$(ARCH)/%.o) +ACENV_H := $(ACPICAROOT)source/include/platform/acenv.h +ACACESS_H := $(ACPICAROOT)source/include/platform/acacess.h + .PHONY: all clean +ifeq ($(words $(SRCS)),0) +extract: $(ACPICAROOT) + @echo Re-run make to compile +endif + +all: $(BIN) include + +clean: + $(RM) -r obj-$(ARCH)/ include + +purge: clean + $(RM) -r $(ACPICAROOT) + $(BIN): $(OBJS) - ar -cu $@ $(OBJS) + @mkdir -p $(dir $@) + @echo [AR] $@ + @ar rcu $@ $(OBJS) + +include: + ln -s $(ACPICAROOT)source/include + +$(ACPICAROOT): $(ACPICA_ARCHIVE) + tar -xf $(ACPICA_ARCHIVE) -obj-$(ARCH)/%.o: $(COMPDIR)%.c +$(ACACESS_H): acacess.h + cp $< $@ + +$(ACENV_H): $(ACPICA_ARCHIVE) Makefile + tar -x -O -f $(ACPICA_ARCHIVE) $(ACENV_H) | sed 's/aclinux/acacess/' | sed 's/_LINUX/_ACESS/' > $@ + +obj-$(ARCH)/%.o: $(COMPDIR)%.c $(ACENV_H) $(ACACESS_H) @mkdir -p $(dir $@) - $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + @echo [CC] -o $@ + @$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< @$(CC) -M -MP -MT $@ $(CPPFLAGS) $< -o $@.dep +-include $(OBJS:%=%.dep) +