4e39cf5799a1f243d46724ca8b31646a65f9b4e3
[tpg/acess2.git] / Externals / core.mk
1
2 # Acess2 OS - "Externals"
3 # - By John Hodge (thePowersGang)
4 #
5 # core.mk
6 # - Makefile code used by all externals
7
8 -include ../../Makefile.cfg
9
10 ifeq ($(ARCH),x86)
11  BFD := i586
12 else ifeq ($(ARCH),x86_64)
13  BFD := x86_64
14 else
15  $(error No BFD translation for $(ARCH) in Externals/core.mk)
16 endif
17
18 #PREFIX=$(ACESSDIR)/Externals/Output
19 #EPREFIX=$(ACESSDIR)/Externals/Output/$(BFD)
20 PREFIX=$(ACESSDIR)/Externals/Output/$(ARCH)
21 EPREFIX=$(PREFIX)
22 SYSROOT=$(ACESSDIR)/Externals/Output/sysroot-$(BFD)
23 HOST=$(BFD)-acess_proxy-elf
24
25 #
26 # DEPS : Dependencies for this program/library 
27 # TARBALL_PATTERN : $(wildcard ) format [glob] pattern
28 # TARBALL_TO_DIR : $(patsubst ) format conversion
29 # PATCHES : List of altered files in the source
30 #  > If patches/%.patch exists, the original is patched, else patches/% is copied in
31 # [?]BTARGETS : Build targets (Defaults to all)
32 # [?]ARCHIVE : Optional forced archive (Defaults to latest)
33 # [?]NOBDIR : Set to non-empty to disable use of a separate build dir
34
35 # CONFIGURE_ARGS : Extra arguments to ./configure (ignoring host and prefix)
36 # [?]CONFIGURE_LINE : Command to create makefile (defaults to autotools configure)
37 # [?]AUTORECONF : Set to non-empty to regenerate ./configure
38
39
40 BTARGETS ?= all
41 ITARGETS ?= install
42
43 _VERS := $(wildcard $(TARBALL_PATTERN))
44 _VERS := $(sort $(_VERS))
45 _LATEST := $(lastword $(_VERS))
46
47 ifeq ($(ARCHIVE),)
48  ifeq ($(_LATEST),)
49   $(warning Unable to find an archive matching $(TARBALL_PATTERN))
50   $(error No archive found)
51  endif
52  
53  ifneq ($(_LATEST),$(_VERS))
54   $(warning Multiple archvies found, picked $(_LATEST))
55  endif
56  ARCHIVE := $(_LATEST)
57 endif
58
59 DIR := $(patsubst $(TARBALL_TO_DIR_L),$(TARBALL_TO_DIR_R),$(ARCHIVE))
60
61 ifeq ($(NOBDIR),)
62  BDIR := build-$(DIR)
63 else
64  BDIR := $(DIR)
65 endif
66 SDIR := ../$(DIR)
67
68 .PHONY: all clean install _patch _build
69
70 all: $(DIR) _patch _build
71
72 clean:
73         rm -rf $(DIR) $(BDIR)
74
75 $(DIR): $(ARCHIVE) patches/UNIFIED.patch
76         tar -xf $(ARCHIVE)
77 ifneq ($(wildcard patches/UNIFIED.patch),)
78         cd $(DIR) && patch -p1 < ../patches/UNIFIED.patch
79 endif
80
81 patches/UNIFIED.patch:
82         
83
84 $(DIR)/%: patches/%.patch
85         @echo [PATCH] $@
86         @tar -xf $(ARCHIVE) $@
87         @patch $@ $<
88
89 $(DIR)/%: patches/%
90         @echo [CP] $@
91         @mkdir -p $(dir $@)
92         @cp $< $@
93
94 PATCHED_FILES := $(addprefix $(DIR)/,$(PATCHES))
95 _patch: $(DIR) $(PATCHED_FILES)

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