diff --git a/src/Makefile b/src/Makefile index 11c6526..8839f1d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -22,15 +22,20 @@ FRAMEWORKS = -framework AppKit -framework ServiceManagement LIBS = -lzip -zip: +default: prereq zip cmdbar_updater $(EXEC).app + +prereq: + @mkdir -p arm64 x86_64 + +zip: prereq @$(MAKE) -C libs/Zip/Zip FLAGS=$(FLAGS) CFLAGS=$(CFLAGS) \ - MACOS_VERSION=$(MACOS_VERSION) all + MACOS_VERSION=$(MACOS_VERSION) cmdbar_updater: - @$(MAKE) -C updater FLAGS=$(FLAGS) all + @$(MAKE) -C updater FLAGS=$(FLAGS) @cp updater/$@ . -./arm64/%.o: %.swift +./arm64/%.o: %.swift zip swift -frontend -c $(if $(DEBUG), -D DEBUG,) \ -target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) \ -I./libs/Zip/Zip -I./libs/Zip/Zip/arm64 -L./libs/Zip/Zip/arm64 \ @@ -38,7 +43,7 @@ cmdbar_updater: -sdk $(SDK) -module-name $(EXEC) -o $@ -emit-module && touch $@ ifdef UNIVERSAL -./x86_64/%.o: %.swift +./x86_64/%.o: %.swift zip @swift -frontend -c $(if $(DEBUG), -D DEBUG,) \ -target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) \ -I./libs/Zip/Zip -I./libs/Zip/Zip/x86_64 -L./libs/Zip/Zip/x86_64 \ @@ -92,11 +97,8 @@ $(EXEC).app: $(EXEC) codesign -s ${APPLE_DEVELOPER_ID_APPLICATION} -f --timestamp \ -o runtime $(EXEC).app) -all: zip cmdbar_updater $(EXEC).app - clean: rm -rf $(EXEC) $(EXEC).app cmdbar_updater arm64 x86_64 - mkdir arm64 x86_64 clean-all: clean $(MAKE) -C libs/Zip/Zip clean-all diff --git a/src/libs/Zip/Zip/Makefile b/src/libs/Zip/Zip/Makefile index 6151738..701b07a 100644 --- a/src/libs/Zip/Zip/Makefile +++ b/src/libs/Zip/Zip/Makefile @@ -2,32 +2,31 @@ CC = swiftc CFLAGS = -g FLAGS = -g -build_minizip: - @:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined)) - @$(MAKE) -C minizip CFLAGS=$(CFLAGS) MACOS_VERSION=$(MACOS_VERSION) all +default: prereq build_minizip ./arm64/libzip.a ./x86_64/libzip.a -./arm64/libzip.a: Zip.swift QuickZip.swift ZipUtilities.swift \ - ./minizip/arm64/zip.o ./minizip/arm64/unzip.o ./minizip/arm64/ioapi.o +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 \ - $^ -o $@ + $(filter-out build_minizip, $^) ./minizip/arm64/libminizip.a -o $@ -./x86_64/libzip.a: Zip.swift QuickZip.swift ZipUtilities.swift \ - ./minizip/x86_64/zip.o ./minizip/x86_64/unzip.o \ - ./minizip/x86_64/ioapi.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 \ - $^ -o $@ - -all: build_minizip ./arm64/libzip.a ./x86_64/libzip.a + $(filter-out build_minizip, $^) ./minizip/x86_64/libminizip.a -o $@ clean: rm -rf arm64 x86_64 - mkdir arm64 x86_64 clean-all: clean $(MAKE) -C minizip clean diff --git a/src/libs/Zip/Zip/minizip/Makefile b/src/libs/Zip/Zip/minizip/Makefile index 7c11cb3..ccf0314 100644 --- a/src/libs/Zip/Zip/minizip/Makefile +++ b/src/libs/Zip/Zip/minizip/Makefile @@ -6,6 +6,12 @@ HEADERS = $(wildcard ./include/*.h) CC = clang CFLAGS = -g +defult: prereq ./arm64/libminizip.a ./x86_64/libminizip.a +# default: $(ARMOBJMODULES) $(X86OBJMODULES) + +prereq: + @mkdir -p arm64 x86_64 + ./arm64/%.o: %.c $(HEADERS) @:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined)) $(CC) -target arm64-apple-macos -mmacosx-version-min=$(MACOS_VERSION) \ @@ -18,10 +24,11 @@ CFLAGS = -g $(CFLAGS) -fmodule-file=./module/module.modulemap -I./include \ -c $< -o ./$@ -all: $(ARMOBJMODULES) $(X86OBJMODULES) +./arm64/libminizip.a: prereq $(ARMOBJMODULES) + ar rcs $@ $(ARMOBJMODULES) -default: $(OBJMODULES) +./x86_64/libminizip.a: prereq $(X86OBJMODULES) + ar rcs $@ $(X86OBJMODULES) clean: rm -rf arm64 x86_64 - mkdir arm64 x86_64 diff --git a/src/updater/Makefile b/src/updater/Makefile index 804f3bf..c849be6 100644 --- a/src/updater/Makefile +++ b/src/updater/Makefile @@ -10,21 +10,23 @@ EXEC = cmdbar_updater FRAMEWORKS = -framework AppKit +default: prereq $(EXEC) + +prereq: + @mkdir -p arm64 x86_64 + ./arm64/$(EXEC): $(FILES) $(CC) -target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \ $(FRAMEWORKS) -o $@ ./x86_64/$(EXEC): $(FILES) - $(CC) -target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \ + @$(CC) -target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \ $(FRAMEWORKS) -o $@ -$(EXEC): ./arm64/$(EXEC) ./x86_64/$(EXEC) - lipo -create -output $(EXEC) $^ && \ +$(EXEC): prereq ./arm64/$(EXEC) ./x86_64/$(EXEC) + lipo -create -output $(EXEC) $(filter-out prereq, $^) && \ codesign -s ${APPLE_DEVELOPER_ID_APPLICATION} -f --timestamp \ -o runtime $(EXEC) -all: $(EXEC) - clean: rm -rf arm64 x86_64 $(EXEC) - mkdir arm64 x86_64