aboutsummaryrefslogtreecommitdiff
path: root/makefile
blob: b35abcd5f6050dff5c8e6130b6c61d4a4a3fafe8 (plain)
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
.PHONY: FORCE

JEKYLL_ENV ?= development
# JEKYLL_ENV ?= production
export JEKYLL_ENV

WEBROOT ?= _site

JEKYLL_BUILD_ARGS += --quiet
JEKYLL_BUILD_ARGS += --destination $(WEBROOT)
ifeq "development" "$(JEKYLL_ENV)"
ifeq "" "$(findstring B,$(MAKEFLAGS))"
JEKYLL_BUILD_ARGS += --incremental
endif
endif

# Gemfile.lock is used as a proxy for checking if the required gems are
# installed
GEMS = Gemfile.lock

POSTS := $(wildcard _items/*)
POST_META := $(patsubst _items/%.md,_data/post/%.yml,$(POSTS))
REPO_META := _data/meta.yml

META := $(POST_META) $(REPO_META)

build: $(GEMS) $(META) FORCE
	bundle exec jekyll build $(JEKYLL_BUILD_ARGS)

$(GEMS): Gemfile
	bundle install --quiet

_data/post/%.yml: _items/%.md
	@mkdir -p _data/post
	_scripts/postinfo $< > $@

$(REPO_META):
	@mkdir -p _data/post
	_scripts/repoinfo > $@

clean: FORCE
	$(RM) -r $(WEBROOT)

_dist.tar.gz: FORCE
	$(MAKE) -E JEKYLL_ENV=production -B build
	tar -zcf $@ -C _site .