@@ -5,15 +5,16 @@ PLATFORM_FILE := $(shell ./check-platform.sh)
55ENVIRONMENT_FILE := $(shell ./check-environment.sh)
66GIT_HASH_FILE := $(shell ./check-git-hash.sh)
77VERSION_FILE := $(shell ./check-version.sh)
8- BASENAME := $(shell ./basename.sh)
8+ BASENAME := $(shell PROJECT=startos ./basename.sh)
99PLATFORM := $(shell if [ -f ./PLATFORM.txt ]; then cat ./PLATFORM.txt; else echo unknown; fi)
1010ARCH := $(shell if [ "$(PLATFORM ) " = "raspberrypi" ]; then echo aarch64; else echo $(PLATFORM ) | sed 's/-nonfree$$//g'; fi)
11+ REGISTRY_BASENAME := $(shell PROJECT=start-registry PLATFORM=$(ARCH ) ./basename.sh)
12+ TUNNEL_BASENAME := $(shell PROJECT=start-tunnel PLATFORM=$(ARCH ) ./basename.sh)
1113IMAGE_TYPE =$(shell if [ "$(PLATFORM ) " = raspberrypi ]; then echo img; else echo iso; fi)
1214WEB_UIS := web/dist/raw/ui/index.html web/dist/raw/setup-wizard/index.html web/dist/raw/install-wizard/index.html
1315COMPRESSED_WEB_UIS := web/dist/static/ui/index.html web/dist/static/setup-wizard/index.html web/dist/static/install-wizard/index.html
1416FIRMWARE_ROMS := ./firmware/$(PLATFORM ) $(shell jq --raw-output '.[] | select(.platform[] | contains("$(PLATFORM ) ") ) | "./firmware/$(PLATFORM ) /" + .id + ".rom.gz"' build/lib/firmware.json)
1517BUILD_SRC := $(call ls-files, build) build/lib/depends build/lib/conflicts $(FIRMWARE_ROMS )
16- DEBIAN_SRC := $(call ls-files, debian/)
1718IMAGE_RECIPE_SRC := $(call ls-files, image-recipe/)
1819STARTD_SRC := core/startos/startd.service $(BUILD_SRC )
1920CORE_SRC := $(call ls-files, core) $(shell git ls-files --recurse-submodules patch-db) $(GIT_HASH_FILE )
@@ -25,7 +26,7 @@ PATCH_DB_CLIENT_SRC := $(shell git ls-files --recurse-submodules patch-db/client
2526GZIP_BIN := $(shell which pigz || which gzip)
2627TAR_BIN := $(shell which gtar || which tar)
2728COMPILED_TARGETS := core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /startbox core/target/$(ARCH ) -unknown-linux-musl/release/containerbox container-runtime/rootfs.$(ARCH ) .squashfs
28- ALL_TARGETS := $(STARTD_SRC ) $(ENVIRONMENT_FILE ) $(GIT_HASH_FILE ) $(VERSION_FILE ) $(COMPILED_TARGETS ) cargo-deps/$(ARCH ) -unknown-linux-musl/release/startos-backup-fs $(PLATFORM_FILE ) \
29+ STARTOS_TARGETS := $(STARTD_SRC ) $(ENVIRONMENT_FILE ) $(GIT_HASH_FILE ) $(VERSION_FILE ) $(COMPILED_TARGETS ) cargo-deps/$(ARCH ) -unknown-linux-musl/release/startos-backup-fs $(PLATFORM_FILE ) \
2930 $(shell if [ "$(PLATFORM ) " = "raspberrypi" ]; then \
3031 echo cargo-deps/aarch64-unknown-linux-musl/release/pi-beep; \
3132 fi) \
@@ -35,6 +36,8 @@ ALL_TARGETS := $(STARTD_SRC) $(ENVIRONMENT_FILE) $(GIT_HASH_FILE) $(VERSION_FILE
3536 $(shell /bin/bash -c 'if [[ "${ENVIRONMENT}" =~ (^|-) console($$|-) ]]; then \
3637 echo cargo-deps/$(ARCH ) -unknown-linux-musl/release/tokio-console; \
3738 fi')
39+ REGISTRY_TARGETS := core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /registrybox core/startos/start-registryd.service
40+ TUNNEL_TARGETS := core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /tunnelbox core/startos/start-tunneld.service
3841REBUILD_TYPES = 1
3942
4043ifeq ($(REMOTE ) ,)
@@ -58,12 +61,12 @@ endif
5861
5962.DELETE_ON_ERROR :
6063
61- .PHONY : all metadata install clean format cli uis ui reflash deb $(IMAGE_TYPE ) squashfs wormhole wormhole-deb test test-core test-sdk test-container-runtime registry
64+ .PHONY : all metadata install clean format cli uis ui reflash deb $(IMAGE_TYPE ) squashfs wormhole wormhole-deb test test-core test-sdk test-container-runtime registry install-registry tunnel install-tunnel
6265
63- all : $(ALL_TARGETS )
66+ all : $(STARTOS_TARGETS )
6467
6568touch :
66- touch $(ALL_TARGETS )
69+ touch $(STARTOS_TARGETS )
6770
6871metadata : $(VERSION_FILE ) $(PLATFORM_FILE ) $(ENVIRONMENT_FILE ) $(GIT_HASH_FILE )
6972
@@ -111,20 +114,49 @@ test-container-runtime: container-runtime/node_modules/.package-lock.json $(call
111114cli :
112115 ./core/install-cli.sh
113116
114- registry :
115- ./core/build-registrybox.sh
117+ registry : core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /registrybox
116118
117- tunnel :
118- ./core/build-tunnelbox.sh
119+ install-registry : $(REGISTRY_TARGETS )
120+ $(call mkdir,$(DESTDIR ) /usr/bin)
121+ $(call cp,core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /registrybox,$(DESTDIR ) /usr/bin/start-registrybox)
122+ $(call ln,/usr/bin/start-registrybox,$(DESTDIR ) /usr/bin/start-registryd)
123+ $(call ln,/usr/bin/start-registrybox,$(DESTDIR ) /usr/bin/start-registry)
119124
120- deb : results/$(BASENAME ) .deb
125+ $(call mkdir,$(DESTDIR)/lib/systemd/system)
126+ $(call cp,core/startos/start-registryd.service,$(DESTDIR)/lib/systemd/system/start-registryd.service)
127+
128+ core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /registrybox : $(CORE_SRC ) $(ENVIRONMENT_FILE )
129+ ARCH=$(ARCH ) PROFILE=$(PROFILE ) ./core/build-registrybox.sh
121130
122- debian/control : build/lib/depends build/lib/conflicts
123- ./debuild/control.sh
131+ tunnel : core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /tunnelbox
132+
133+ install-tunnel : core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /tunnelbox core/startos/start-tunneld.service
134+ $(call mkdir,$(DESTDIR ) /usr/bin)
135+ $(call cp,core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /tunnelbox,$(DESTDIR ) /usr/bin/start-tunnelbox)
136+ $(call ln,/usr/bin/start-tunnelbox,$(DESTDIR ) /usr/bin/start-tunneld)
137+ $(call ln,/usr/bin/start-tunnelbox,$(DESTDIR ) /usr/bin/start-tunnel)
138+
139+ $(call mkdir,$(DESTDIR)/lib/systemd/system)
140+ $(call cp,core/startos/start-tunneld.service,$(DESTDIR)/lib/systemd/system/start-tunneld.service)
124141
125- results/$(BASENAME ) .deb : dpkg-build.sh $(DEBIAN_SRC ) $(ALL_TARGETS )
142+ core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /tunnelbox : $(CORE_SRC ) $(ENVIRONMENT_FILE )
143+ ARCH=$(ARCH ) PROFILE=$(PROFILE ) ./core/build-tunnelbox.sh
144+
145+ deb : results/$(BASENAME ) .deb
146+
147+ results/$(BASENAME ) .deb : dpkg-build.sh $(call ls-files,debian/startos) $(STARTOS_TARGETS )
126148 PLATFORM=$(PLATFORM ) REQUIRES=debian ./build/os-compat/run-compat.sh ./dpkg-build.sh
127149
150+ registry-deb : results/$(REGISTRY_BASENAME ) .deb
151+
152+ results/$(REGISTRY_BASENAME ) .deb : dpkg-build.sh $(call ls-files,debian/start-registry) $(REGISTRY_TARGETS )
153+ PROJECT=start-registry PLATFORM=$(ARCH ) REQUIRES=debian ./build/os-compat/run-compat.sh ./dpkg-build.sh
154+
155+ tunnel-deb : results/$(TUNNEL_BASENAME ) .deb
156+
157+ results/$(TUNNEL_BASENAME ) .deb : dpkg-build.sh $(call ls-files,debian/start-tunnel) $(TUNNEL_TARGETS )
158+ PROJECT=start-tunnel PLATFORM=$(ARCH ) REQUIRES=debian DEPENDS=wireguard-tools,iptables,network-manager ./build/os-compat/run-compat.sh ./dpkg-build.sh
159+
128160$(IMAGE_TYPE ) : results/$(BASENAME ) .$(IMAGE_TYPE )
129161
130162squashfs : results/$(BASENAME ) .squashfs
@@ -133,7 +165,7 @@ results/$(BASENAME).$(IMAGE_TYPE) results/$(BASENAME).squashfs: $(IMAGE_RECIPE_S
133165 REQUIRES=debian ./build/os-compat/run-compat.sh ./image-recipe/run-local-build.sh " results/$( BASENAME) .deb"
134166
135167# For creating os images. DO NOT USE
136- install : $(ALL_TARGETS )
168+ install : $(STARTOS_TARGETS )
137169 $(call mkdir,$(DESTDIR ) /usr/bin)
138170 $(call mkdir,$(DESTDIR ) /usr/sbin)
139171 $(call cp,core/target/$(ARCH ) -unknown-linux-musl/$(PROFILE ) /startbox,$(DESTDIR ) /usr/bin/startbox)
@@ -165,7 +197,7 @@ install: $(ALL_TARGETS)
165197
166198 $(call cp,firmware/$(PLATFORM),$(DESTDIR)/usr/lib/startos/firmware)
167199
168- update-overlay : $(ALL_TARGETS )
200+ update-overlay : $(STARTOS_TARGETS )
169201 @echo " \033[33m!!! THIS WILL ONLY REFLASH YOUR DEVICE IN MEMORY !!!\033[0m"
170202 @echo " \033[33mALL CHANGES WILL BE REVERTED IF YOU RESTART THE DEVICE\033[0m"
171203 @if [ -z " $( REMOTE) " ]; then >&2 echo " Must specify REMOTE" && false ; fi
@@ -191,7 +223,7 @@ wormhole-squashfs: results/$(BASENAME).squashfs
191223 @echo
192224 @wormhole send results/$(BASENAME ) .squashfs 2>&1 | awk -Winteractive ' /wormhole receive/ { printf "sudo sh -c ' " '" ' /usr/lib/startos/scripts/prune-images $(SQFS_SIZE) && /usr/lib/startos/scripts/prune-boot && cd /media/startos/images && wormhole receive --accept-file %s && CHECKSUM=$(SQFS_SUM) /usr/lib/startos/scripts/use-img ./$(BASENAME).squashfs' " '" ' \n", $$3 }'
193225
194- update : $(ALL_TARGETS )
226+ update : $(STARTOS_TARGETS )
195227 @if [ -z " $( REMOTE) " ]; then >&2 echo " Must specify REMOTE" && false ; fi
196228 $(call ssh,'sudo /usr/lib/startos/scripts/chroot-and-upgrade --create')
197229 $(MAKE ) install REMOTE=$(REMOTE ) SSHPASS=$(SSHPASS ) DESTDIR=/media/startos/next PLATFORM=$(PLATFORM )
@@ -219,7 +251,7 @@ update-squashfs: results/$(BASENAME).squashfs
219251 $(call cp,results/$(BASENAME ) .squashfs,/media/startos/images/next.rootfs)
220252 $(call ssh,'sudo CHECKSUM=$(SQFS_SUM ) /usr/lib/startos/scripts/use-img /media/startos/images/next.rootfs')
221253
222- emulate-reflash : $(ALL_TARGETS )
254+ emulate-reflash : $(STARTOS_TARGETS )
223255 @if [ -z " $( REMOTE) " ]; then >&2 echo " Must specify REMOTE" && false ; fi
224256 $(call ssh,'sudo /usr/lib/startos/scripts/chroot-and-upgrade --create')
225257 $(MAKE ) install REMOTE=$(REMOTE ) SSHPASS=$(SSHPASS ) DESTDIR=/media/startos/next PLATFORM=$(PLATFORM )
0 commit comments