forked from rovellipaolo/NinjaDroid
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
111 lines (88 loc) · 2.99 KB
/
Makefile
File metadata and controls
111 lines (88 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
DOCKER_FILE := docker/Dockerfile
DOCKER_IMAGE := ninjadroid
DOCKER_TAG := latest
FLATPAK_MANIFEST := flatpak/com.github.rovellipaolo.NinjaDroid.yaml
PWD := $(shell pwd)
NINJADROID_HOME := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
# Build:
.PHONY: build
build:
sudo chmod 755 ninjadroid/aapt/aapt
sudo chmod 755 ninjadroid/apktool/apktool.jar
sudo chmod -R 755 ninjadroid/dex2jar/
@pip3 install -r requirements.txt
build-macos:
#make build
sudo chmod 755 ninjadroid/aapt/aapt
sudo chmod 755 ninjadroid/apktool/apktool.jar
sudo chmod -R 755 ninjadroid/dex2jar/
@pip3 install coverage
@pip3 install parameterized
@pip3 install pylint
@pip3 install python-dateutil
@pip3 install typing
@pip3 install tzlocal
@pip3 install pyaxmlparser --user
mv -f ninjadroid/aapt/aapt_macos ninjadroid/aapt/aapt
build-linux:
make build
mv -f ninjadroid/aapt/aapt_linux ninjadroid/aapt/aapt
.PHONY: build-docker
build-docker:
@docker build -f ${DOCKER_FILE} -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
.PHONY: build-flatpak
build-flatpak:
@flatpak install flathub org.freedesktop.Platform//20.08 org.freedesktop.Sdk//20.08 --user
@flatpak install flathub org.freedesktop.Sdk.Extension.openjdk11//20.08 --user
@flatpak install flathub org.freedesktop.Sdk.Extension.toolchain-i386//20.08 --user
@flatpak-builder flatpak/build ${FLATPAK_MANIFEST} --force-clean
# Install:
.PHONY: install
install:
sudo ln -s $(NINJADROID_HOME)/ninjadroid.py /usr/local/bin/ninjadroid
.PHONY: uninstall
uninstall:
sudo unlink /usr/local/bin/ninjadroid
.PHONY: install-githooks
install-githooks:
@pip3 install pre-commit
pre-commit install
.PHONY: uninstall-githooks
uninstall-githooks:
pre-commit uninstall
# Run:
.PHONY: run
run:
@python3 ninjadroid.py $(apk)
.PHONY: run-docker
run-docker:
@docker run --name ${DOCKER_IMAGE} -it --rm -v ${PWD}/apks:/apks ${DOCKER_IMAGE}:${DOCKER_TAG} ninjadroid $(apk)
.PHONY: run-flatpak
run-flatpak:
@flatpak-builder --run flatpak/build ${FLATPAK_MANIFEST} ninjadroid $(apk)
# Test:
.PHONY: test
test:
@python3 -m unittest
.PHONY: test-coverage
test-coverage:
@coverage3 run --source=. --omit="tests/*,regression/*" -m unittest
@coverage3 report
.PHONY: test-docker
test-docker:
@docker run --name ${DOCKER_IMAGE} --rm -w /opt/NinjaDroid -v ${NINJADROID_HOME}/tests:/opt/NinjaDroid/tests ${DOCKER_IMAGE}:${DOCKER_TAG} python3 -m unittest
.PHONY: regression
regression:
@python3 regression/native.py
.PHONY: regression-docker
regression-docker:
@python3 regression/docker.py
.PHONY: regression-flatpak
regression-flatpak:
@python3 regression/flatpak.py
.PHONY: checkstyle
checkstyle:
pylint ninjadroid.py ninjadroid/ tests/ regression/
.PHONY: checkstyle-docker
checkstyle-docker:
@docker run --name ${DOCKER_IMAGE} --rm -w /opt/NinjaDroid -v ${NINJADROID_HOME}/.pylintrc:/opt/NinjaDroid/.pylintrc -v ${NINJADROID_HOME}/tests:/opt/NinjaDroid/tests -v ${NINJADROID_HOME}/regression:/opt/NinjaDroid/regression ${DOCKER_IMAGE}:${DOCKER_TAG} pylint ninjadroid.py ninjadroid/ tests/ regression/