Externals/ACPICA - Added magic to auto-extract source
[tpg/acess2.git] / Externals / ACPICA / Makefile
1
2
3 include $(dir $(lastword $(MAKEFILE_LIST)))../../Makefile.cfg
4
5 COMPONENTS = utilities tables
6 BIN := ../bin-$(ARCH)/libacpica.a
7
8 _VERS := $(patsubst acpica-unix-%.tar.gz,%,$(wildcard acpica-unix-*.tar.gz))
9 _VERS := $(sort $(_VERS))
10 _LATEST := $(lastword $(_VERS))
11
12 ifeq ($(ACPICAVER),)
13  ifeq ($(_LATEST),)
14   $(error No ACPICA archive found (acpica-unix-%.tar.gz))
15  endif
16  
17  ifneq ($(_LATEST),$(_VERS))
18   $(warning Multiple archvies found, picked $(_LATEST))
19  endif
20  ACPICAVER := $(_LATEST)
21 endif
22
23 ACPICAROOT := acpica-unix-$(ACPICAVER)/
24 ACPICA_ARCHIVE := acpica-unix-$(ACPICAVER).tar.gz
25 COMPDIR := $(ACPICAROOT)source/components/
26 KERNELDIR := ../../KernelLand/Kernel/
27
28 CPPFLAGS        += -I $(KERNELDIR)include -I$(KERNELDIR)arch/$(ARCHDIR)/include -D_MODULE_NAME_=\"ACPICA\"
29 CPPFLAGS        += -I $(ACPICAROOT)source/include -D _ACESS -D __KERNEL__
30 CPPFLAGS        += -D ARCH=$(ARCH) -D ARCHDIR=$(ARCHDIR) -D PLATFORM=\"$(PLATFORM)\" -D ARCHDIR_IS_$(ARCHDIR)=1 -D PLATFORM_is_$(PLATFORM)=1
31 CPPFLAGS        += -D KERNEL_VERSION=$(KERNEL_VERSION) -ffreestanding
32 CFLAGS          += -Wall -fno-stack-protector -Wstrict-prototypes -std=gnu99 -g
33
34 SRCS := $(foreach comp,$(COMPONENTS),$(wildcard $(COMPDIR)$(comp)/*.c))
35 OBJS := $(SRCS:$(COMPDIR)%.c=obj-$(ARCH)/%.o)
36
37 ACENV_H := $(ACPICAROOT)source/include/platform/acenv.h
38 ACACESS_H := $(ACPICAROOT)source/include/platform/acacess.h
39
40 .PHONY: all clean
41
42 ifeq ($(words $(SRCS)),0)
43 extract: $(ACPICAROOT)
44         @echo Re-run make to compile
45 endif
46
47 all: $(BIN)
48
49 clean:
50         $(RM) -r obj-$(ARCH)/
51 purge: clean
52         $(RM) -r $(ACPICAROOT)
53
54 $(BIN): $(OBJS)
55         @mkdir -p $(dir $@)
56         @echo [AR] $@
57         @ar rcu $@ $(OBJS)
58
59 $(ACPICAROOT): $(ACPICA_ARCHIVE)
60         tar -xf $(ACPICA_ARCHIVE)
61
62 $(ACACESS_H): acacess.h
63         cp $< $@
64
65 $(ACENV_H): $(ACPICA_ARCHIVE) Makefile
66         tar -x -O -f $(ACPICA_ARCHIVE) $(ACENV_H) | sed 's/aclinux/acacess/' | sed 's/_LINUX/_ACESS/' > $@
67
68 obj-$(ARCH)/%.o: $(COMPDIR)%.c $(ACENV_H) $(ACACESS_H)
69         @mkdir -p $(dir $@)
70         @echo [CC] -o $@
71         @$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< 
72         @$(CC) -M -MP -MT $@ $(CPPFLAGS) $< -o [email protected]
73
74 -include $(OBJS:%=%.dep)
75

UCC git Repository :: git.ucc.asn.au