3 include $(dir $(lastword $(MAKEFILE_LIST)))../../Makefile.cfg
5 COMPONENTS = utilities tables
6 BIN := ../bin-$(ARCH)/libacpica.a
8 _VERS := $(patsubst acpica-unix-%.tar.gz,%,$(wildcard acpica-unix-*.tar.gz))
9 _VERS := $(sort $(_VERS))
10 _LATEST := $(lastword $(_VERS))
14 $(warning Unable to find an archive matching acpica-unix-%.tar.gz)
15 $(warning Go to https://www.acpica.org/downloads/ to get it)
16 $(error No ACPICA archive found)
19 ifneq ($(_LATEST),$(_VERS))
20 $(warning Multiple archvies found, picked $(_LATEST))
22 ACPICAVER := $(_LATEST)
25 ACPICAROOT := acpica-unix-$(ACPICAVER)/
26 ACPICA_ARCHIVE := acpica-unix-$(ACPICAVER).tar.gz
27 COMPDIR := $(ACPICAROOT)source/components/
28 KERNELDIR := ../../KernelLand/Kernel/
30 CPPFLAGS += -I $(KERNELDIR)include -I$(KERNELDIR)arch/$(ARCHDIR)/include -D_MODULE_NAME_=\"ACPICA\"
31 CPPFLAGS += -I $(ACPICAROOT)source/include -D _ACESS -D __KERNEL__
32 CPPFLAGS += -D ARCH=$(ARCH) -D ARCHDIR=$(ARCHDIR) -D PLATFORM=\"$(PLATFORM)\" -D ARCHDIR_IS_$(ARCHDIR)=1 -D PLATFORM_is_$(PLATFORM)=1
33 CPPFLAGS += -D KERNEL_VERSION=$(KERNEL_VERSION) -ffreestanding
34 CFLAGS += -Wall -fno-stack-protector -Wstrict-prototypes -std=gnu99 -g
36 SRCS := $(foreach comp,$(COMPONENTS),$(wildcard $(COMPDIR)$(comp)/*.c))
37 OBJS := $(SRCS:$(COMPDIR)%.c=obj-$(ARCH)/%.o)
39 ACENV_H := $(ACPICAROOT)source/include/platform/acenv.h
40 ACACESS_H := $(ACPICAROOT)source/include/platform/acacess.h
44 ifeq ($(words $(SRCS)),0)
45 extract: $(ACPICAROOT)
46 @echo Re-run make to compile
54 $(RM) -r $(ACPICAROOT)
61 $(ACPICAROOT): $(ACPICA_ARCHIVE)
62 tar -xf $(ACPICA_ARCHIVE)
64 $(ACACESS_H): acacess.h
67 $(ACENV_H): $(ACPICA_ARCHIVE) Makefile
68 tar -x -O -f $(ACPICA_ARCHIVE) $(ACENV_H) | sed 's/aclinux/acacess/' | sed 's/_LINUX/_ACESS/' > $@
70 obj-$(ARCH)/%.o: $(COMPDIR)%.c $(ACENV_H) $(ACACESS_H)
73 @$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
76 -include $(OBJS:%=%.dep)