mattermost-mobile/Makefile
Thomas Hopkins 99140c6ece Check for npm, xcode, & android env in makefile (#30)
* Avoid clobbering config.secret.json if already exists

* Clear npm cache when running make clean

* Fail make if npm is not installed

* Wrap rn run commands so local rn cli is used instead of global

* Separate run commands for ios & android

* Fail make run-ios if xcode isn't installed

* Check android env in make run

* Fix make check for config.secret.json
2016-10-18 23:01:54 -07:00

62 lines
1.3 KiB
Makefile

.PHONY: run run-ios run-android check-style test clean
.npminstall: package.json
@if ! [ $(shell command -v npm) ]; then \
echo "npm is not installed"; \
exit 1; \
fi
@echo Getting dependencies using npm
npm install
touch $@
config/config.secret.json:
@if ! [ $(shell test -f config/config.secret.json) ]; then \
echo "Generating default config/config.secret.json"; \
echo '{}' > "config/config.secret.json"; \
fi
run: run-ios
run-ios: .npminstall config/config.secret.json
@if ! [ $(shell command -v xcodebuild) ]; then \
echo "xcode is not installed"; \
exit 1; \
fi
@echo Running iOS app in development
npm run run-ios
run-android: .npminstall config/config.secret.json
@if ! [ $(ANDROID_HOME) ]; then \
echo "ANDROID_HOME is not set"; \
exit 1; \
fi
@if ! [ $(shell command -v adb) ]; then \
echo "adb is not installed"; \
exit 1; \
fi
@if ! [ $(shell adb get-state) == "device" ]; then \
echo "no android device or emulator is running"; \
exit 1; \
fi
@echo Running Android app in development
npm run run-android
test: .npminstall config/config.secret.json
npm test
check-style: .npminstall
@echo Checking for style guide compliance
npm run check
clean:
@echo Cleaning app
npm cache clean
rm -rf node_modules
rm -f .npminstall