mirror of
https://github.com/apple/container.git
synced 2026-09-09 17:25:36 +00:00
Provides explicit makefile targets for files (#167)
fixes #165 `init` depends on `vminitd/bin/vminitd`, `vminitd/bin/vmexec`, and `bin/cctl` `integration` depends on `bin/containerization-integration` `bin/*` get generated via `make containerization`
This commit is contained in:
@@ -40,33 +40,39 @@ release: BUILD_CONFIGURATION = release
|
||||
release: all
|
||||
|
||||
.PHONY: containerization
|
||||
containerization:
|
||||
containerization: bin/cctl bin/containerization-integration
|
||||
|
||||
.PHONY: swift-build
|
||||
swift-build:
|
||||
@echo Building containerization binaries...
|
||||
@mkdir -p bin
|
||||
@$(SWIFT) build -c $(BUILD_CONFIGURATION)
|
||||
|
||||
@echo Copying containerization binaries...
|
||||
@install $(BUILD_BIN_DIR)/cctl ./bin/
|
||||
@install $(BUILD_BIN_DIR)/containerization-integration ./bin/
|
||||
$(BUILD_BIN_DIR)/cctl $(BUILD_BIN_DIR)/containerization-integration:
|
||||
@"$(MAKE)" swift-build
|
||||
|
||||
@echo Signing containerization binaries...
|
||||
@codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/cctl
|
||||
@codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/containerization-integration
|
||||
bin/%: $(BUILD_BIN_DIR)/%
|
||||
@mkdir -p bin/
|
||||
@install $< bin/
|
||||
@codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements $@
|
||||
|
||||
init := bin/init.rootfs.tar.gz
|
||||
.PHONY: init
|
||||
init: vminitd
|
||||
init: $(init)
|
||||
|
||||
$(init): vminitd/bin/vminitd vminitd/bin/vmexec bin/cctl
|
||||
@echo Creating init.ext4...
|
||||
@rm -f bin/init.rootfs.tar.gz bin/init.block
|
||||
@./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
|
||||
@rm -f $(init) bin/init.block
|
||||
@./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
|
||||
|
||||
.PHONY: cross-prep
|
||||
cross-prep:
|
||||
@"$(MAKE)" -C vminitd cross-prep
|
||||
|
||||
.PHONY: vminitd
|
||||
vminitd:
|
||||
@mkdir -p ./bin
|
||||
@"$(MAKE)" -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION)
|
||||
vminitd: vminitd/bin/vminitd vminitd/bin/vmexec
|
||||
|
||||
vminitd/bin/%:
|
||||
@"$(MAKE)" -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION) bin/$*
|
||||
|
||||
.PHONY: update-libarchive-source
|
||||
update-libarchive-source:
|
||||
@@ -88,6 +94,10 @@ ifeq (,$(wildcard bin/vmlinux))
|
||||
@echo No bin/vmlinux kernel found. See fetch-default-kernel target.
|
||||
@exit 1
|
||||
endif
|
||||
@"$(MAKE)" integration-kernel-checked
|
||||
|
||||
.PHONY: integration-kernel-checked
|
||||
integration-kernel-checked: $(init) bin/containerization-integration
|
||||
@echo Running the integration tests...
|
||||
@./bin/containerization-integration --bootlog ./bin/boot.log
|
||||
|
||||
|
||||
+12
-6
@@ -31,14 +31,20 @@ MACOS_RELEASE_TYPE := $(shell sw_vers | grep ReleaseType)
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
all: bin/vminitd bin/vmexec
|
||||
|
||||
.PHONY: swift-build
|
||||
swift-build:
|
||||
@echo Building vminitd and vmexec...
|
||||
@mkdir -p ./bin/
|
||||
@rm -f ./bin/vminitd
|
||||
@rm -f ./bin/vmexec
|
||||
@swift build -c $(BUILD_CONFIGURATION) $(SWIFT_CONFIGURATION)
|
||||
@install $(VMINITD_BIN_PATH)/vminitd ./bin/vminitd
|
||||
@install $(VMINITD_BIN_PATH)/vmexec ./bin/vmexec
|
||||
|
||||
$(VMINITD_BIN_PATH)/vminitd $(VMINITD_BIN_PATH)/vmexec:
|
||||
@$(MAKE) swift-build
|
||||
|
||||
bin/%: $(VMINITD_BIN_PATH)/%
|
||||
@mkdir -p bin/
|
||||
@rm -f $@
|
||||
@install $< bin/
|
||||
|
||||
.PHONY: cross-prep
|
||||
cross-prep: linux-sdk macos-sdk
|
||||
|
||||
Reference in New Issue
Block a user