11PACKAGE_ID := $(shell awk -F"'" '/id:/ {print $$2}' startos/manifest.ts)
22INGREDIENTS := $(shell start-cli s9pk list-ingredients 2>/dev/null)
3+ SYNAPSE_ADMIN_VERSION = v0.11.1-etke47
4+ SYNAPSE_ADMIN_CHECKSUM = 9323ec6921f8170dc9fb65efdcd23e35fd2dea12c588cba34753b0492b7871c2
35
4- CMD_ARCH_GOAL := $(filter aarch64 x86_64, $(MAKECMDGOALS ) )
6+ CMD_ARCH_GOAL := $(filter aarch64 x86_64 arm x86 , $(MAKECMDGOALS ) )
57ifeq ($(CMD_ARCH_GOAL ) ,)
68 BUILD := universal
79 S9PK := $(PACKAGE_ID ) .s9pk
810else
9- BUILD := $(firstword $(CMD_ARCH_GOAL ) )
11+ RAW_ARCH := $(firstword $(CMD_ARCH_GOAL ) )
12+ ACTUAL_ARCH := $(subst x86,x86_64,$(subst arm,aarch64,$(RAW_ARCH ) ) )
13+ BUILD := $(ACTUAL_ARCH )
1014 S9PK := $(PACKAGE_ID ) _$(BUILD ) .s9pk
1115endif
1216
13- .PHONY : all aarch64 x86_64 clean install check-deps check-init package ingredients
17+ .PHONY : all aarch64 x86_64 arm x86 clean install check-deps check-init package ingredients
1418.DELETE_ON_ERROR :
1519
1620define SUMMARY
1721 @manifest=$$(start-cli s9pk inspect $(1 ) manifest ) ; \
1822 size=$$(du -h $(1 ) | awk '{print $$1}' ) ; \
19- title=$$(echo $$manifest | jq -r .title ) ; \
20- version=$$(echo $$manifest | jq -r .version ) ; \
21- arches=$$(echo $$manifest | jq -r '.hardwareRequirements.arch | join(", " ) '); \
22- sdkv=$$(echo $$manifest | jq -r .sdkVersion ) ; \
23- gitHash=$$(echo "$$manifest" | jq -r .gitHash | sed -E 's/(.*-modified ) $$/\x1b[0;31m\1\x1b[0m/'); \
24- echo " "; \
25- echo "\033[1;32m✅ Build Complete!\033[0m"; \
26- echo " "; \
27- echo "\033[1;37m📦 $$title\033[0m \033[36mv$$version\033[0m"; \
28- echo "───────────────────────────────"; \
23+ title=$$(printf '%s' " $$manifest" | jq -r .title ) ; \
24+ version=$$(printf '%s' " $$manifest" | jq -r .version ) ; \
25+ arches=$$(printf '%s' " $$manifest" | jq -r '.hardwareRequirements.arch | join(", " ) '); \
26+ sdkv=$$(printf '%s' " $$manifest" | jq -r .sdkVersion ) ; \
27+ gitHash=$$(printf '%s' "$$manifest" | jq -r .gitHash | sed -E 's/(.*-modified ) $$/\x1b[0;31m\1\x1b[0m/'); \
28+ printf "\n "; \
29+ printf "\033[1;32m✅ Build Complete!\033[0m\n "; \
30+ printf "\n "; \
31+ printf "\033[1;37m📦 $$title\033[0m \033[36mv$$version\033[0m\n "; \
32+ printf "───────────────────────────────\n "; \
2933 printf " \033[1;36mFilename:\033[0m %s\n" "$(1 ) "; \
3034 printf " \033[1;36mSize:\033[0m %s\n" "$$size"; \
3135 printf " \033[1;36mArch:\033[0m %s\n" "$$arches"; \
@@ -40,7 +44,10 @@ all: $(PACKAGE_ID).s9pk
4044$(BUILD ) : $(PACKAGE_ID ) _$(BUILD ) .s9pk
4145 $(call SUMMARY,$(S9PK ) )
4246
43- $(S9PK ) : $(INGREDIENTS ) .git/HEAD .git/index
47+ x86 : x86_64
48+ arm : aarch64
49+
50+ $(S9PK ) : $(INGREDIENTS ) .git/HEAD .git/index assets/synapse-admin
4451 @$(MAKE ) --no-print-directory ingredients
4552 @echo " Packing '$( S9PK) '..."
4653 BUILD=$(BUILD ) start-cli s9pk pack -o $(S9PK )
@@ -69,6 +76,15 @@ check-init:
6976 start-cli init; \
7077 fi
7178
79+ assets/synapse-admin : tmp/synapse-admin.tar.gz
80+ rm -rf assets/synapse-admin
81+ tar -xzvf tmp/synapse-admin.tar.gz -C assets
82+
83+ tmp/synapse-admin.tar.gz :
84+ mkdir -p tmp
85+ (cd tmp && curl --progress-bar -OL https://github.com/etkecc/synapse-admin/releases/download/$( SYNAPSE_ADMIN_VERSION) /synapse-admin.tar.gz)
86+ echo " $( SYNAPSE_ADMIN_CHECKSUM) tmp/synapse-admin.tar.gz" | shasum -a 256 -c
87+
7288javascript/index.js : $(shell find startos -type f) tsconfig.json node_modules
7389 npm run build
7490
@@ -80,4 +96,4 @@ package-lock.json: package.json
8096
8197clean :
8298 @echo " Cleaning up build artifacts..."
83- @rm -rf $(PACKAGE_ID ) .s9pk $(PACKAGE_ID ) _x86_64.s9pk $(PACKAGE_ID ) _aarch64.s9pk javascript node_modules
99+ @rm -rf $(PACKAGE_ID ) .s9pk $(PACKAGE_ID ) _x86_64.s9pk $(PACKAGE_ID ) _aarch64.s9pk javascript assets/synapse-admin tmp node_modules
0 commit comments