60 lines
1.6 KiB
Makefile
60 lines
1.6 KiB
Makefile
app_name=$(notdir $(CURDIR))
|
|
build_tools_directory=$(CURDIR)/build/tools
|
|
source_build_directory=$(CURDIR)/build/artifacts/source
|
|
source_package_name=$(source_build_directory)/$(app_name)
|
|
appstore_build_directory=$(CURDIR)/build/artifacts/appstore
|
|
appstore_package_name=$(appstore_build_directory)/$(app_name)
|
|
npm=$(shell which npm 2> /dev/null)
|
|
composer=$(shell which composer 2> /dev/null)
|
|
|
|
all: build
|
|
|
|
# Fetches the PHP and JS dependencies and compiles the JS. If no composer.json
|
|
# is present, the composer step is skipped, if no package.json or js/package.json
|
|
# is present, the npm step is skipped
|
|
.PHONY: build
|
|
build:
|
|
ifneq (,$(wildcard $(CURDIR)/composer.json))
|
|
make composer
|
|
endif
|
|
ifneq (,$(wildcard $(CURDIR)/package.json))
|
|
make npm
|
|
endif
|
|
ifneq (,$(wildcard $(CURDIR)/js/package.json))
|
|
make npm
|
|
endif
|
|
|
|
# Installs and updates the composer dependencies. If composer is not installed
|
|
# a copy is fetched from the web
|
|
.PHONY: composer
|
|
composer:
|
|
ifeq (, $(composer))
|
|
@echo "No composer command available, downloading a copy from the web"
|
|
mkdir -p $(build_tools_directory)
|
|
curl -sS https://getcomposer.org/installer | php
|
|
mv composer.phar $(build_tools_directory)
|
|
php $(build_tools_directory)/composer.phar install --prefer-dist
|
|
else
|
|
composer install --prefer-dist
|
|
endif
|
|
|
|
# Installs npm dependencies
|
|
.PHONY: npm
|
|
npm:
|
|
npm install
|
|
npm run build
|
|
|
|
# Removes the appstore build
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf ./build
|
|
|
|
# Same as clean but also removes dependencies installed by composer, bower and
|
|
# npm
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
rm -rf vendor
|
|
rm -rf node_modules
|
|
rm -rf js/vendor
|
|
rm -rf js/node_modules
|