File: Makefile

package info (click to toggle)
git-subrepo 0.4.9-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,552 kB
  • sloc: sh: 7,074; makefile: 273; perl: 226
file content (70 lines) | stat: -rw-r--r-- 1,591 bytes parent folder | download | duplicates (4)
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
ifeq ($(MAKECMDGOALS),install)
  ifeq "$(shell bpan version 2>/dev/null)" ""
    $(error 'BPAN not installed. See http://bpan.org')
  endif
endif

NAME := bash+
LIB  := lib/$(NAME).bash
DOC  := doc/$(NAME).swim
MAN1 := man/man1
MAN3 := man/man3

INSTALL_LIB  ?= $(shell bpan env BPAN_LIB)
INSTALL_DIR  ?= test
INSTALL_MAN1 ?= $(shell bpan env BPAN_MAN1)
INSTALL_MAN3 ?= $(shell bpan env BPAN_MAN3)

DOCKER_IMAGE := ingy/bash-testing:0.0.1
DOCKER_TESTS := 5.1 5.0 4.4 4.3 4.2 4.1 4.0 3.2
DOCKER_TESTS := $(DOCKER_TESTS:%=docker-test-%)

default: help

help:
	@echo 'Rules: test, install, doc'

.PHONY: test
test:
	prove $(PROVEOPT:%=% )test/

test-all: test docker-test

docker-test: $(DOCKER_TESTS)

$(DOCKER_TESTS):
	$(call docker-make-test,$(@:docker-test-%=%))

install:
	install -C -d -m 0755 $(INSTALL_LIB)/$(INSTALL_DIR)/
	install -C -m 0755 $(LIB) $(INSTALL_LIB)/$(INSTALL_DIR)/
	install -C -d -m 0755 $(INSTALL_MAN1)/
	install -C -d -m 0755 $(INSTALL_MAN3)/
	install -C -m 0644 $(MAN1)/$(NAME).1 $(INSTALL_MAN1)/
	install -C -m 0644 $(MAN3)/$(NAME).3 $(INSTALL_MAN3)/

.PHONY: doc
doc: ReadMe.pod $(MAN1)/$(NAME).1 $(MAN3)/$(NAME).3

ReadMe.pod: $(DOC)
	swim --to=pod --complete --wrap $< > $@

$(MAN1)/%.1: doc/%.swim
	swim --to=man $< > $@

$(MAN3)/%.3: doc/%.swim
	swim --to=man $< > $@

define docker-make-test
	docker run -i -t --rm \
	    -v $(PWD):/git-subrepo \
	    -w /git-subrepo \
	    $(DOCKER_IMAGE) \
		/bin/bash -c ' \
		    set -x && \
		    [[ -d /bash-$(1) ]] && \
		    export PATH=/bash-$(1)/bin:$$PATH && \
		    bash --version && \
		    make test \
		'
endef