@@ -40,33 +40,39 @@ release: BUILD_CONFIGURATION = release
4040release : all
4141
4242.PHONY : containerization
43- containerization :
43+ containerization : bin/cctl bin/containerization-integration
44+
45+ .PHONY : swift-build
46+ swift-build :
4447 @echo Building containerization binaries...
45- @mkdir -p bin
4648 @$(SWIFT ) build -c $(BUILD_CONFIGURATION )
4749
48- @echo Copying containerization binaries...
49- @install $(BUILD_BIN_DIR)/cctl ./bin/
50- @install $(BUILD_BIN_DIR)/containerization-integration ./bin/
50+ $(BUILD_BIN_DIR ) /cctl $(BUILD_BIN_DIR ) /containerization-integration :
51+ @" $( MAKE) " swift-build
5152
52- @echo Signing containerization binaries...
53- @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/cctl
54- @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/containerization-integration
53+ bin/% : $(BUILD_BIN_DIR ) /%
54+ @mkdir -p bin/
55+ @install $< bin/
56+ @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements $@
5557
58+ init := bin/init.rootfs.tar.gz
5659.PHONY : init
57- init : vminitd
60+ init : $(init )
61+
62+ $(init ) : vminitd/bin/vminitd vminitd/bin/vmexec bin/cctl
5863 @echo Creating init.ext4...
59- @rm -f bin/ init.rootfs.tar.gz bin/init.block
60- @./bin/cctl rootfs create --vminitd vminitd/bin/vminitd --labels org.opencontainers.image.source=https://github.com/apple/containerization --vmexec vminitd/bin/vmexec bin/ init.rootfs.tar.gz vminit:latest
64+ @rm -f $( init ) bin/init.block
65+ @./bin/cctl rootfs create --vminitd vminitd/bin/vminitd --labels org.opencontainers.image.source=https://github.com/apple/containerization --vmexec vminitd/bin/vmexec $( init ) vminit:latest
6166
6267.PHONY : cross-prep
6368cross-prep :
6469 @" $( MAKE) " -C vminitd cross-prep
6570
6671.PHONY : vminitd
67- vminitd :
68- @mkdir -p ./bin
69- @" $( MAKE) " -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION )
72+ vminitd : vminitd/bin/vminitd vminitd/bin/vmexec
73+
74+ vminitd/bin/% :
75+ @" $( MAKE) " -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION ) bin/$*
7076
7177.PHONY : update-libarchive-source
7278update-libarchive-source :
@@ -88,6 +94,10 @@ ifeq (,$(wildcard bin/vmlinux))
8894 @echo No bin/vmlinux kernel found. See fetch-default-kernel target.
8995 @exit 1
9096endif
97+ @"$(MAKE)" integration-kernel-checked
98+
99+ .PHONY : integration-kernel-checked
100+ integration-kernel-checked : $(init ) bin/containerization-integration
91101 @echo Running the integration tests...
92102 @./bin/containerization-integration --bootlog ./bin/boot.log
93103
0 commit comments