Updated from some -dev modules to alpha, beta or full releases
[yaffs-website] / vendor / psy / psysh / Makefile
1 PSYSH_SRC = bin src box.json.dist composer.json build/stub
2 PSYSH_SRC_FILES = $(shell find src -type f -name "*.php")
3 VERSION = $(shell git describe --tag --always --dirty=-dev)
4
5 COMPOSER_OPTS = --no-interaction --no-progress --verbose
6 COMPOSER_REQUIRE_OPTS = $(COMPOSER_OPTS) --no-update
7 COMPOSER_UPDATE_OPTS = $(COMPOSER_OPTS) --prefer-stable --no-dev --classmap-authoritative --prefer-dist
8
9
10 # Commands
11
12 .PHONY: help clean build dist
13 .DEFAULT_GOAL := help
14
15 help:
16         @echo "\033[33mUsage:\033[0m\n  make TARGET\n\n\033[33mTargets:\033[0m"
17         @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[32m%-7s\033[0m %s\n", $$1, $$2}'
18
19 clean: ## Clean all created artifacts
20         rm -rf build/*
21         rm -rf dist/*
22         rm -rf vendor-bin/*/vendor/
23
24 build: ## Compile PHARs
25 build: build/psysh/psysh build/psysh-compat/psysh build/psysh-php54/psysh build/psysh-php54-compat/psysh
26
27 dist: ## Build tarballs for distribution
28 dist: dist/psysh-$(VERSION).tar.gz dist/psysh-$(VERSION)-compat.tar.gz dist/psysh-$(VERSION)-php54.tar.gz dist/psysh-$(VERSION)-php54-compat.tar.gz
29
30
31 # All the composer stuffs
32
33 composer.lock: composer.json
34         composer install
35         touch $@
36
37 vendor/autoload.php: composer.lock
38         composer install
39         touch $@
40
41 vendor/bin/box: vendor/autoload.php
42         composer bin box install
43         touch $@
44
45
46 # Lots of PHARs
47
48 build/stub: bin/build-stub bin/psysh LICENSE
49         bin/build-stub
50
51 build/psysh: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
52         rm -rf $@ || true
53         mkdir $@
54         cp -R $(PSYSH_SRC) $@/
55         composer config --working-dir $@ platform.php 7.0
56         composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) php:'>=7.0.0'
57         composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
58
59 build/psysh-compat: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
60         rm -rf $@ || true
61         mkdir $@
62         cp -R $(PSYSH_SRC) $@/
63         composer config --working-dir $@ platform.php 7.0
64         composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) php:'>=7.0.0'
65         composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) symfony/polyfill-iconv symfony/polyfill-mbstring hoa/console
66         composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
67
68 build/psysh-php54: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
69         rm -rf $@ || true
70         mkdir $@
71         cp -R $(PSYSH_SRC) $@/
72         composer config --working-dir $@ platform.php 5.4
73         composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
74
75 build/psysh-php54-compat: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
76         rm -rf $@ || true
77         mkdir $@
78         cp -R $(PSYSH_SRC) $@/
79         composer config --working-dir $@ platform.php 5.4
80         composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) symfony/polyfill-iconv symfony/polyfill-mbstring hoa/console:^2.15
81         composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
82
83 build/%/psysh: vendor/bin/box build/%
84         vendor/bin/box compile --working-dir $(dir $@)
85
86
87 # Dist packages
88
89 dist/psysh-$(VERSION).tar.gz: build/psysh/psysh
90         tar -czf $@ $<
91
92 dist/psysh-$(VERSION)-%.tar.gz: build/psysh-%/psysh
93         tar -czf $@ $<