-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.common
58 lines (46 loc) · 1021 Bytes
/
Makefile.common
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
# Ruby Common Big 2016-11-08
MV = mv -nv
RM = rm -rfd
MKDIR = mkdir -p
CHMOD = chmod
BUNDLER = bundler
BUNDLER_OPTIONS = --jobs=5 --retry=3
GEMSPEC_FILE = $(GEM_NAME).gemspec
.PHONY: all
all: setup $(ALL_TARGETS_EXT)
.PHONY: setup
setup: .setup
.setup:
which ruby &> /dev/null
which $(BUNDLER) &> /dev/null
ruby -v
$(BUNDLER) install $(BUNDLER_OPTIONS)
touch $@
.PHONY: install
install:
gem_file=$$(gem build $(GEMSPEC_FILE) 2> /dev/null | grep 'File:' | tail -1 | awk '{ print $$2 }'); \
gem install $$gem_file; \
$(RM) $$gem_file
.PHONY: uninstall
uninstall:
gem uninstall $(GEM_NAME)
.PHONY: update
update:
$(BUNDLER) update
.PHONY: clean
clean:
$(RM) .bundle .setup Gemfile.lock
.PHONY: release
release: | releases
set -e; \
gem_file=$$(gem build $(GEMSPEC_FILE) | grep 'File:' | tail -1 | awk '{ print $$2 }'); \
dst="releases/$$gem_file"; \
[ ! -f $$dst ]; \
$(MV) $$gem_file releases; \
gem push $$dst; \
echo 'done'
releases:
$(MKDIR) $@
tmp:
$(MKDIR) $@
$(CHMOD) u=rwx,go-rwx $@