blob: c41c7e4dbd6c77a58bb26d103d530927da193317 (
plain) (
blame)
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
|
# rsend build orchestration. Heavy lifting lives in the shell scripts so the
# project builds with one `make` on any Debian box with the pinned toolchain.
.POSIX:
all: native app
# Provision the pinned toolchain (JDK, Go, Android SDK+NDK, Gradle) into
# $HOME/toolchains. One-time; then `. $HOME/toolchains/env.sh` before building.
setup:
sh ci/setup-toolchain.sh
# Native executables, shipped inside the APK as lib*.so.
native: rsync rsh
# Real rsync, cross-compiled from pinned source via the Android NDK.
rsync:
sh rsync/build.sh
# Go SSH transport, cross-compiled to Bionic PIE via the NDK (needs the NDK,
# like rsync). rsh logic is verified host-side by `make test`.
rsh:
sh rsh/build.sh
# Android app. Consumes the native libs from app/src/main/jniLibs. Uses the
# pinned system gradle; run from the repo root where settings.gradle lives. No
# wrapper jar is committed; gradle/wrapper/gradle-wrapper.properties only pins
# the version for F-Droid's gradlew, which refuses to build without it.
app: native
gradle :app:assembleRelease
test:
sh ci/test.sh
verify-repro:
sh ci/verify-repro.sh
clean:
rm -rf out app/build app/src/main/jniLibs rsync/work rsh/rsh
.PHONY: all setup native rsync rsh app test verify-repro clean
|