forked from GNUsocial/gnu-social
96 lines
2.9 KiB
Makefile
96 lines
2.9 KiB
Makefile
|
PSYSH_SRC = bin src box.json.dist composer.json build/stub
|
|||
|
PSYSH_SRC_FILES = $(shell find src -type f -name "*.php")
|
|||
|
VERSION = $(shell git describe --tag --always --dirty=-dev)
|
|||
|
|
|||
|
COMPOSER_OPTS = --no-interaction --no-progress --verbose
|
|||
|
COMPOSER_REQUIRE_OPTS = $(COMPOSER_OPTS) --no-update
|
|||
|
COMPOSER_UPDATE_OPTS = $(COMPOSER_OPTS) --prefer-stable --no-dev --classmap-authoritative --prefer-dist
|
|||
|
|
|||
|
|
|||
|
# Commands
|
|||
|
|
|||
|
.PHONY: help clean build dist
|
|||
|
.DEFAULT_GOAL := help
|
|||
|
|
|||
|
help:
|
|||
|
@echo "\033[33mUsage:\033[0m\n make TARGET\n\n\033[33mTargets:\033[0m"
|
|||
|
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[32m%-7s\033[0m %s\n", $$1, $$2}'
|
|||
|
|
|||
|
clean: ## Clean all created artifacts
|
|||
|
rm -rf build/*
|
|||
|
rm -rf dist/*
|
|||
|
rm -rf vendor-bin/*/vendor/
|
|||
|
|
|||
|
build: ## Compile PHARs
|
|||
|
build: build/psysh/psysh build/psysh-compat/psysh build/psysh-php54/psysh build/psysh-php54-compat/psysh
|
|||
|
|
|||
|
dist: ## Build tarballs for distribution
|
|||
|
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
|
|||
|
|
|||
|
|
|||
|
# All the composer stuffs
|
|||
|
|
|||
|
composer.lock: composer.json
|
|||
|
composer install
|
|||
|
touch $@
|
|||
|
|
|||
|
vendor/autoload.php: composer.lock
|
|||
|
composer install
|
|||
|
touch $@
|
|||
|
|
|||
|
vendor/bin/box: vendor/autoload.php
|
|||
|
composer bin box install
|
|||
|
touch $@
|
|||
|
|
|||
|
|
|||
|
# Lots of PHARs
|
|||
|
|
|||
|
build/stub: bin/build-stub bin/psysh LICENSE
|
|||
|
bin/build-stub
|
|||
|
|
|||
|
build/psysh: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
|
|||
|
rm -rf $@ || true
|
|||
|
mkdir $@
|
|||
|
cp -R $(PSYSH_SRC) $@/
|
|||
|
composer config --working-dir $@ platform.php 7.0
|
|||
|
composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) php:'>=7.0.0'
|
|||
|
composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
|
|||
|
|
|||
|
build/psysh-compat: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
|
|||
|
rm -rf $@ || true
|
|||
|
mkdir $@
|
|||
|
cp -R $(PSYSH_SRC) $@/
|
|||
|
composer config --working-dir $@ platform.php 7.0
|
|||
|
composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) php:'>=7.0.0'
|
|||
|
composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) symfony/polyfill-iconv symfony/polyfill-mbstring hoa/console
|
|||
|
composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
|
|||
|
|
|||
|
build/psysh-php54: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
|
|||
|
rm -rf $@ || true
|
|||
|
mkdir $@
|
|||
|
cp -R $(PSYSH_SRC) $@/
|
|||
|
composer config --working-dir $@ platform.php 5.4
|
|||
|
composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
|
|||
|
|
|||
|
build/psysh-php54-compat: $(PSYSH_SRC) $(PSYSH_SRC_FILES)
|
|||
|
rm -rf $@ || true
|
|||
|
mkdir $@
|
|||
|
cp -R $(PSYSH_SRC) $@/
|
|||
|
composer config --working-dir $@ platform.php 5.4
|
|||
|
composer require --working-dir $@ $(COMPOSER_REQUIRE_OPTS) symfony/polyfill-iconv symfony/polyfill-mbstring hoa/console:^2.15
|
|||
|
composer update --working-dir $@ $(COMPOSER_UPDATE_OPTS)
|
|||
|
|
|||
|
build/%/psysh: vendor/bin/box build/%
|
|||
|
vendor/bin/box compile --working-dir $(dir $@)
|
|||
|
|
|||
|
|
|||
|
# Dist packages
|
|||
|
|
|||
|
dist/psysh-$(VERSION).tar.gz: build/psysh/psysh
|
|||
|
@mkdir -p $(@D)
|
|||
|
tar -C $(dir $<) -czf $@ $(notdir $<)
|
|||
|
|
|||
|
dist/psysh-$(VERSION)-%.tar.gz: build/psysh-%/psysh
|
|||
|
@mkdir -p $(@D)
|
|||
|
tar -C $(dir $<) -czf $@ $(notdir $<)
|