1 # Siti AI Makefile
2 #
3 # ── macOS App Store ────────────────────────────────────────────────────────
4 # make asmacos — full pipeline: build → sign → upload
5 # make asmacos-build — tauri build only (universal, App Store config)
6 # make asmacos-sign — sign the .app into a .pkg
7 # make asmacos-upload — upload the .pkg to App Store Connect
8 #
9 # ── iOS App Store ──────────────────────────────────────────────────────────
10 # make asios — full pipeline: clean → init → icons → override → build → fixplist → upload
11 # make asios-clean — rm -rf src-tauri/gen/apple
12 # make asios-init — cargo tauri ios init
13 # make asios-icons — pnpm gim
14 # make asios-override — copy gen-override/apple into gen/apple
15 # make asios-build — cargo tauri ios build
16 # make asios-fixplist — rewrite beta toolchain stamps (Info.plist + Mach-O) to release values, re-sign
17 # make asios-upload — xcrun altool upload
18 #
19 # ── visionOS App Store (TestFlight) ────────────────────────────────────────
20 # make asvision — full pipeline: generate → archive → export → fixplist → upload
21 # make asvision-generate — xcodegen generate (xcode/SitiVision.xcodeproj)
22 # make asvision-archive — xcodebuild archive (automatic signing)
23 # make asvision-export — xcodebuild -exportArchive → .ipa
24 # make asvision-fixplist — rewrite beta host-OS stamp (Info.plist + Mach-O) to release values, re-sign
25 # make asvision-upload — xcrun altool upload
26 #
27 # ── Android Play Store ─────────────────────────────────────────────────────
28 # make psmobile — full pipeline: clean → init → icons → override → keystore → build → open (.aab)
29 # make psmobile-clean — rm -rf src-tauri/gen/android
30 # make psmobile-init — cargo tauri android init
31 # make psmobile-icons — pnpm gim
32 # make psmobile-override — copy gen-override/android into gen/android
33 # make psmobile-keystore — patch keystore.properties storeFile path
34 # make psmobile-build — cargo tauri android build --aab
35 # make psmobile-open — open the .aab output dir (upload to Play Console)
36 #
37 # ── Development ────────────────────────────────────────────────────────────
38 # make dev — start the Tauri dev server
39 # make build — standard debug build
40 # make fmt — cargo fmt
41 # make lint — clippy + tsc
42 # make clean — remove build artefacts
43
44 .PHONY: dev build \
45 asmacos asmacos-build asmacos-sign asmacos-upload \
46 asios asios-clean asios-init asios-icons asios-override asios-build asios-fixplist asios-upload \
47 asvision asvision-generate asvision-archive asvision-export asvision-fixplist asvision-upload \
48 psmobile psmobile-clean psmobile-init psmobile-icons psmobile-override psmobile-keystore psmobile-build psmobile-open \
49 web-dev web-build web-deploy \
50 fmt lint clean
51
52 # ── macOS App Store ────────────────────────────────────────────────────────
53
54 asmacos:
55 ./scripts/build-appstore.sh all
56
57 asmacos-build:
58 ./scripts/build-appstore.sh build
59
60 asmacos-sign:
61 ./scripts/build-appstore.sh sign
62
63 asmacos-upload:
64 ./scripts/build-appstore.sh upload
65
66 # ── iOS App Store ──────────────────────────────────────────────────────────
67
68 asios:
69 ./scripts/build-ios.sh all
70
71 asios-clean:
72 ./scripts/build-ios.sh clean
73
74 asios-init:
75 ./scripts/build-ios.sh init
76
77 asios-icons:
78 ./scripts/build-ios.sh icons
79
80 asios-override:
81 ./scripts/build-ios.sh override
82
83 asios-build:
84 ./scripts/build-ios.sh build
85
86 asios-fixplist:
87 ./scripts/build-ios.sh fixplist
88
89 asios-upload:
90 ./scripts/build-ios.sh upload
91
92 # ── visionOS App Store (TestFlight) ────────────────────────────────────────
93
94 asvision:
95 ./scripts/build-visionos.sh all
96
97 asvision-generate:
98 ./scripts/build-visionos.sh generate
99
100 asvision-archive:
101 ./scripts/build-visionos.sh archive
102
103 asvision-export:
104 ./scripts/build-visionos.sh export
105
106 asvision-fixplist:
107 ./scripts/build-visionos.sh fixplist
108
109 asvision-upload:
110 ./scripts/build-visionos.sh upload
111
112 # ── Android Play Store ─────────────────────────────────────────────────────
113
114 psmobile:
115 ./scripts/build-android.sh all
116 open src-tauri/gen/android/app/build/outputs/bundle/universalRelease/
117
118 psmobile-clean:
119 ./scripts/build-android.sh clean
120
121 psmobile-init:
122 ./scripts/build-android.sh init
123
124 psmobile-icons:
125 ./scripts/build-android.sh icons
126
127 psmobile-override:
128 ./scripts/build-android.sh override
129
130 psmobile-keystore:
131 ./scripts/build-android.sh keystore
132
133 psmobile-build:
134 ./scripts/build-android.sh build
135
136 psmobile-open:
137 open src-tauri/gen/android/app/build/outputs/bundle/universalRelease/
138
139 # ── Development ────────────────────────────────────────────────────────────
140
141 dev:
142 pnpm tauri dev
143
144 build:
145 pnpm tauri build
146
147 # ── Landing page (web) ─────────────────────────────────────────────────────
148 # web-dev — run the Next.js landing page locally (http://localhost:3034)
149 # web-build — production build (.next/standalone) for smbCloud nextjs-ssr
150 # web-deploy — build + deploy to smbCloud via the smb CLI
151
152 web-dev:
153 pnpm --filter @siti/web dev
154
155 web-build:
156 pnpm --filter @siti/web build
157
158 web-deploy: web-build
159 smb deploy
160
161 fmt:
162 cargo fmt --manifest-path src-tauri/Cargo.toml --all
163
164 lint:
165 cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
166 pnpm tsc --noEmit
167
168 clean:
169 cargo clean --manifest-path src-tauri/Cargo.toml