2023-03-22 17:22:27 -04:00
|
|
|
-include config.override.mk
|
|
|
|
|
include config.mk
|
|
|
|
|
|
|
|
|
|
# The CI environment variable is set automatically in CircleCI and GitLab CI
|
|
|
|
|
CI ?= false
|
|
|
|
|
|
2023-07-18 10:46:59 -04:00
|
|
|
# Detect Linux/ARM64 and set a flag to fix the issue with optipng-bin on it:
|
|
|
|
|
# please see optipng-bin Linux arm64 support issue (https://github.com/imagemin/optipng-bin/issues/118) for details:
|
|
|
|
|
ifeq ($(shell uname)/$(shell uname -m),Linux/aarch64)
|
|
|
|
|
LINUX_ARM64 = true
|
2024-06-18 15:56:45 -04:00
|
|
|
CPPFLAGS += -DPNG_ARM_NEON_OPT=0
|
2024-01-30 12:07:36 -05:00
|
|
|
endif
|
|
|
|
|
# Exact same issue but for Linux/PPC64
|
|
|
|
|
ifeq ($(findstring Linux/ppc64,$(shell uname)/$(shell uname -m)),Linux/ppc64)
|
|
|
|
|
LINUX_PPC64 = true
|
2024-06-18 15:56:45 -04:00
|
|
|
CPPFLAGS += -DPNG_POWERPC_VSX_OPT=0
|
2023-07-18 10:46:59 -04:00
|
|
|
endif
|
|
|
|
|
|
2023-03-22 17:22:27 -04:00
|
|
|
.PHONY: run
|
|
|
|
|
run: node_modules ## Runs app
|
|
|
|
|
@echo Running Mattermost Web App for development
|
|
|
|
|
|
|
|
|
|
npm run run
|
|
|
|
|
|
|
|
|
|
.PHONY: stop
|
|
|
|
|
stop: ## Stops webpack
|
|
|
|
|
@echo Stopping changes watching
|
|
|
|
|
|
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
|
wmic process where "Caption='node.exe' and CommandLine like '%webpack%'" call terminate
|
|
|
|
|
else
|
2023-04-10 11:44:00 -04:00
|
|
|
-@pkill -f webpack || true
|
2023-03-22 17:22:27 -04:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
.PHONY: restart
|
|
|
|
|
restart: | stop run ## Restarts the app
|
|
|
|
|
|
|
|
|
|
.PHONY: dev
|
|
|
|
|
dev: node_modules ## Runs app with webpack-dev-server
|
|
|
|
|
npm run dev-server
|
|
|
|
|
|
|
|
|
|
.PHONY: test
|
|
|
|
|
test: node_modules ## Runs tests
|
|
|
|
|
@echo Running jest unit/component testing
|
|
|
|
|
|
|
|
|
|
npm run test
|
|
|
|
|
|
|
|
|
|
.PHONY: check-style
|
|
|
|
|
check-style: node_modules ## Checks JS file for ESLint confirmity
|
|
|
|
|
@echo Checking for style guide compliance
|
|
|
|
|
|
|
|
|
|
npm run check
|
|
|
|
|
|
|
|
|
|
.PHONY: fix-style
|
|
|
|
|
fix-style: node_modules ## Fix JS file ESLint issues
|
|
|
|
|
@echo Fixing lint issues to follow style guide
|
|
|
|
|
|
|
|
|
|
npm run fix
|
|
|
|
|
|
|
|
|
|
.PHONY: check-types
|
|
|
|
|
check-types: node_modules ## Checks TS file for TypeScript confirmity
|
|
|
|
|
@echo Checking for TypeScript compliance
|
|
|
|
|
|
|
|
|
|
npm run check-types
|
|
|
|
|
|
|
|
|
|
.PHONY: dist
|
2023-06-14 17:33:26 -04:00
|
|
|
dist: node_modules ## Builds all web app packages
|
2023-03-22 17:22:27 -04:00
|
|
|
@echo Packaging Mattermost Web App
|
|
|
|
|
|
2023-06-14 17:33:26 -04:00
|
|
|
npm run build
|
2023-03-22 17:22:27 -04:00
|
|
|
|
|
|
|
|
node_modules: package.json $(wildcard package-lock.json)
|
|
|
|
|
@echo Getting dependencies using npm
|
|
|
|
|
|
|
|
|
|
ifeq ($(CI),false)
|
2024-01-30 12:07:36 -05:00
|
|
|
CPPFLAGS="$(CPPFLAGS)" npm install
|
2023-03-22 17:22:27 -04:00
|
|
|
else
|
|
|
|
|
# This runs in CI with NODE_ENV=production which skips devDependencies without this flag
|
|
|
|
|
npm ci --include=dev
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
touch $@
|
|
|
|
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
|
clean: ## Clears cached; deletes node_modules and dist directories
|
|
|
|
|
@echo Cleaning Web App
|
|
|
|
|
|
|
|
|
|
npm run clean --workspaces --if-present
|
|
|
|
|
rm -rf node_modules
|
|
|
|
|
|
2023-07-11 02:28:29 -04:00
|
|
|
.PHONY: package
|
|
|
|
|
package: node_modules dist ## Generates ./mattermost-webapp.tar.gz for use by someone customizing the web app
|
|
|
|
|
mkdir tmp
|
|
|
|
|
mv channels/dist tmp/client
|
|
|
|
|
tar -C tmp -czf mattermost-webapp.tar.gz client
|
|
|
|
|
mv tmp/client channels/dist
|
|
|
|
|
rmdir tmp
|
|
|
|
|
|
2023-03-22 17:22:27 -04:00
|
|
|
## Help documentation à la https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
|
|
|
|
.PHONY: help
|
|
|
|
|
help:
|
|
|
|
|
@grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' ./Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|