/
common.mk
86 lines (70 loc) · 1.85 KB
/
common.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
.DEFAULT_GOAL := build
BASEDIR := $(dir $(abspath $(CURDIR)))
MACHINE := $(shell uname -m)
CHROOT := /var/cache/pkgs/chroot-$(MACHINE)
BUILDQUEUE := $(BASEDIR)buildqueue
DESTDIR ?= $(BASEDIR)pkgs
REPO := $(notdir $(CURDIR))
comma := ,
empty :=
space := $(empty) $(empty)
ALL_PKGS := $(subst /PKGBUILD,,$(wildcard */PKGBUILD))
SKIP_PKGS := $(subst $(comma),$(space),$(SKIP))
ifdef PKGS
PKGBUILDS := $(addsuffix /PKGBUILD,$(shell $(BUILDQUEUE) $(subst $(comma),$(space),$(PKGS))))
else
PKGBUILDS := $(addsuffix /PKGBUILD,$(shell $(BUILDQUEUE) $(filter-out $(SKIP_PKGS),$(ALL_PKGS))))
endif
BUILDDIR := .build
SOURCESDIR := $(BUILDDIR)/sources
LOGSDIR := $(BUILDDIR)/logs
PKGBUILDSDIR := $(BUILDDIR)/PKGBUILDs
TARGETS := $(addprefix $(PKGBUILDSDIR)/,$(PKGBUILDS))
GIT_TARGETS := $(filter %-git/PKGBUILD,$(TARGETS))
$(PKGBUILDSDIR)/%/PKGBUILD: %/PKGBUILD
@mkdir -p $(PKGBUILDSDIR)
cp -R $(+D) $(PKGBUILDSDIR)
@mkdir -p $(DESTDIR)/$(REPO)/os/$(MACHINE)
@mkdir -p $(SOURCESDIR) $(LOGSDIR)
ifdef INIT
guzuta build $(@D) \
--repo-name $(REPO) \
--arch $(MACHINE) \
--chroot-dir $(CHROOT) \
--repo-dir $(DESTDIR)/$(REPO)/os/$(MACHINE) \
--srcdest $(SOURCESDIR) --logdest $(LOGSDIR)
aws s3 sync $(DESTDIR)/$(REPO) s3://yak-packages/$(REPO)
else
cp .guzuta.yml $(BUILDDIR)
cd $(BUILDDIR) && \
guzuta omakase build $(notdir $(@D))
endif
.PHONY: build
build: clean-git $(TARGETS)
.PHONY: update-pkg
update-pkg:
ifndef PKG
$(error PKG required)
endif
cower -df $(PKG)
.PHONY: new-pkg
new-pkg:
ifndef PKG
$(error PKG required)
endif
ifneq ("$(LOCAL)","1")
cower -d $(PKG)
else
mkdir $(PKG)
touch $(PKG)/PKGBUILD
endif
.PHONY: clean-git
clean-git: ## Clean git based packages
ifneq ("$(GIT_TARGETS)","")
@-rm $(GIT_TARGETS) ||:
endif
.PHONY: clean
clean: ## Remove build artifacts
ifneq ("$(wildcard $(BUILDDIR))","")
rm -rf $(BUILDDIR)
endif