CC = swiftc
CFLAGS = -g
FLAGS = -g

default: prereq build_minizip ./arm64/libzip.a ./x86_64/libzip.a

prereq:
	@mkdir -p arm64 x86_64

build_minizip: prereq
	@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
	@$(MAKE) -C minizip CFLAGS=$(CFLAGS) MACOS_VERSION=$(MACOS_VERSION)

./arm64/libzip.a: build_minizip Zip.swift QuickZip.swift ZipUtilities.swift
	@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
	swiftc -target arm64-apple-macos$(MACOS_VERSION) -I./minizip/module \
		-I./minizip/include -L./minizip/arm64 $(FLAGS) -static \
		-module-name Zip -emit-library -emit-module -parse-as-library \
		$(filter-out build_minizip, $^) ./minizip/arm64/libminizip.a -o $@

./x86_64/libzip.a: build_minizip Zip.swift QuickZip.swift ZipUtilities.swift
	@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
	@swiftc -target x86_64-apple-macos$(MACOS_VERSION) -I./minizip/module \
		-I./minizip/include -L./minizip/x86_64 $(FLAGS) -static \
		-module-name Zip -emit-library -emit-module -parse-as-library \
		$(filter-out build_minizip, $^) ./minizip/x86_64/libminizip.a -o $@

clean:
	rm -rf arm64 x86_64

clean-all: clean
	$(MAKE) -C minizip clean
