mirror of
https://github.com/mosbth/cimage.git
synced 2025-07-21 16:51:47 +02:00
228 lines
4.8 KiB
Makefile
228 lines
4.8 KiB
Makefile
#
|
|
#
|
|
#
|
|
|
|
# Detect OS
|
|
OS = $(shell uname -s)
|
|
|
|
# Defaults
|
|
ECHO = echo
|
|
|
|
# Make adjustments based on OS
|
|
# http://stackoverflow.com/questions/3466166/how-to-check-if-running-in-cygwin-mac-or-linux/27776822#27776822
|
|
ifneq (, $(findstring CYGWIN, $(OS)))
|
|
ECHO = /bin/echo -e
|
|
endif
|
|
|
|
# Colors and helptext
|
|
NO_COLOR = \033[0m
|
|
ACTION = \033[32;01m
|
|
OK_COLOR = \033[32;01m
|
|
ERROR_COLOR = \033[31;01m
|
|
WARN_COLOR = \033[33;01m
|
|
|
|
# Which makefile am I in?
|
|
WHERE-AM-I = $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
|
|
THIS_MAKEFILE := $(call WHERE-AM-I)
|
|
|
|
# Echo some nice helptext based on the target comment
|
|
HELPTEXT = $(ECHO) "$(ACTION)--->" `egrep "^\# target: $(1) " $(THIS_MAKEFILE) | sed "s/\# target: $(1)[ ]*-[ ]* / /g"` "$(NO_COLOR)"
|
|
|
|
# Add local bin path for test tools
|
|
#PATH := "./.bin:./vendor/bin:./node_modules/.bin:$(PATH)"
|
|
#SHELL := env PATH=$(PATH) $(SHELL)
|
|
PHPUNIT := .bin/phpunit
|
|
PHPLOC := .bin/phploc
|
|
PHPCS := .bin/phpcs
|
|
PHPCBF := .bin/phpcbf
|
|
PHPMD := .bin/phpmd
|
|
PHPDOC := .bin/phpdoc
|
|
BEHAT := .bin/behat
|
|
|
|
|
|
|
|
# target: help - Displays help.
|
|
.PHONY: help
|
|
help:
|
|
@$(call HELPTEXT,$@)
|
|
@$(ECHO) "Usage:"
|
|
@$(ECHO) " make [target] ..."
|
|
@$(ECHO) "target:"
|
|
@egrep "^# target:" $(THIS_MAKEFILE) | sed 's/# target: / /g'
|
|
|
|
|
|
|
|
# target: prepare - Prepare for tests and build
|
|
.PHONY: prepare
|
|
prepare:
|
|
@$(call HELPTEXT,$@)
|
|
[ -d .bin ] || mkdir .bin
|
|
[ -d build ] || mkdir build
|
|
rm -rf build/*
|
|
|
|
|
|
|
|
# target: clean - Removes generated files and directories.
|
|
.PHONY: clean
|
|
clean:
|
|
@$(call HELPTEXT,$@)
|
|
rm -rf build
|
|
|
|
|
|
|
|
# target: clean-all - Removes generated files and directories.
|
|
.PHONY: clean-all
|
|
clean-all:
|
|
@$(call HELPTEXT,$@)
|
|
rm -rf .bin build vendor composer.lock
|
|
|
|
|
|
|
|
# target: check - Check version of installed tools.
|
|
.PHONY: check
|
|
check: check-tools-php
|
|
@$(call HELPTEXT,$@)
|
|
|
|
|
|
|
|
# target: test - Run all tests.
|
|
.PHONY: test
|
|
test: phpunit phpcs phpmd phploc behat
|
|
@$(call HELPTEXT,$@)
|
|
composer validate
|
|
|
|
|
|
|
|
# target: doc - Generate documentation.
|
|
.PHONY: doc
|
|
doc: phpdoc
|
|
@$(call HELPTEXT,$@)
|
|
|
|
|
|
|
|
# target: build - Do all build
|
|
.PHONY: build
|
|
build: test doc #less-compile less-minify js-minify
|
|
@$(call HELPTEXT,$@)
|
|
|
|
|
|
|
|
# target: install - Install all tools
|
|
.PHONY: install
|
|
install: prepare install-tools-php
|
|
@$(call HELPTEXT,$@)
|
|
|
|
|
|
|
|
# target: update - Update the codebase and tools.
|
|
.PHONY: update
|
|
update:
|
|
@$(call HELPTEXT,$@)
|
|
git pull
|
|
composer update
|
|
|
|
|
|
|
|
# target: tag-prepare - Prepare to tag new version.
|
|
.PHONY: tag-prepare
|
|
tag-prepare:
|
|
@$(call HELPTEXT,$@)
|
|
|
|
|
|
|
|
# ------------------------------------------------------------------------
|
|
#
|
|
# PHP
|
|
#
|
|
|
|
# target: install-tools-php - Install PHP development tools.
|
|
.PHONY: install-tools-php
|
|
install-tools-php:
|
|
@$(call HELPTEXT,$@)
|
|
curl -Lso $(PHPDOC) https://www.phpdoc.org/phpDocumentor.phar && chmod 755 $(PHPDOC)
|
|
|
|
curl -Lso $(PHPCS) https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar && chmod 755 $(PHPCS)
|
|
|
|
curl -Lso $(PHPCBF) https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar && chmod 755 $(PHPCBF)
|
|
|
|
curl -Lso $(PHPMD) http://static.phpmd.org/php/latest/phpmd.phar && chmod 755 $(PHPMD)
|
|
|
|
curl -Lso $(PHPUNIT) https://phar.phpunit.de/phpunit-5.7.9.phar && chmod 755 $(PHPUNIT)
|
|
|
|
curl -Lso $(PHPLOC) https://phar.phpunit.de/phploc.phar && chmod 755 $(PHPLOC)
|
|
|
|
curl -Lso $(BEHAT) https://github.com/Behat/Behat/releases/download/v3.3.0/behat.phar && chmod 755 $(BEHAT)
|
|
|
|
composer install
|
|
|
|
|
|
|
|
|
|
# target: check-tools-php - Check versions of PHP tools.
|
|
.PHONY: check-tools-php
|
|
check-tools-php:
|
|
@$(call HELPTEXT,$@)
|
|
which $(PHPUNIT) && $(PHPUNIT) --version
|
|
which $(PHPLOC) && $(PHPLOC) --version
|
|
which $(PHPCS) && $(PHPCS) --version && echo
|
|
which $(PHPMD) && $(PHPMD) --version && echo
|
|
which $(PHPCBF) && $(PHPCBF) --version && echo
|
|
which $(PHPDOC) && $(PHPDOC) --version && echo
|
|
which $(BEHAT) && $(BEHAT) --version && echo
|
|
|
|
|
|
|
|
# target: phpunit - Run unit tests for PHP.
|
|
.PHONY: phpunit
|
|
phpunit: prepare
|
|
@$(call HELPTEXT,$@)
|
|
$(PHPUNIT) --configuration .phpunit.xml
|
|
|
|
|
|
|
|
# target: phpcs - Codestyle for PHP.
|
|
.PHONY: phpcs
|
|
phpcs: prepare
|
|
@$(call HELPTEXT,$@)
|
|
$(PHPCS) --standard=.phpcs.xml | tee build/phpcs
|
|
|
|
|
|
|
|
# target: phpcbf - Fix codestyle for PHP.
|
|
.PHONY: phpcbf
|
|
phpcbf:
|
|
@$(call HELPTEXT,$@)
|
|
$(PHPCBF) --standard=.phpcs.xml
|
|
|
|
|
|
|
|
# target: phpmd - Mess detector for PHP.
|
|
.PHONY: phpmd
|
|
phpmd: prepare
|
|
@$(call HELPTEXT,$@)
|
|
- $(PHPMD) . text .phpmd.xml | tee build/phpmd
|
|
|
|
|
|
|
|
# target: phploc - Code statistics for PHP.
|
|
.PHONY: phploc
|
|
phploc: prepare
|
|
@$(call HELPTEXT,$@)
|
|
$(PHPLOC) src > build/phploc
|
|
|
|
|
|
|
|
# target: phpdoc - Create documentation for PHP.
|
|
.PHONY: phpdoc
|
|
phpdoc:
|
|
@$(call HELPTEXT,$@)
|
|
$(PHPDOC) --config=.phpdoc.xml
|
|
|
|
|
|
|
|
# target: behat - Run behat for feature tests.
|
|
.PHONY: behat
|
|
behat:
|
|
@$(call HELPTEXT,$@)
|
|
$(BEHAT)
|