Makefiles are now better at handling -j.
This commit is contained in:
18
src/Makefile
18
src/Makefile
@@ -22,15 +22,20 @@ FRAMEWORKS = -framework AppKit -framework ServiceManagement
|
|||||||
|
|
||||||
LIBS = -lzip
|
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) \
|
@$(MAKE) -C libs/Zip/Zip FLAGS=$(FLAGS) CFLAGS=$(CFLAGS) \
|
||||||
MACOS_VERSION=$(MACOS_VERSION) all
|
MACOS_VERSION=$(MACOS_VERSION)
|
||||||
|
|
||||||
cmdbar_updater:
|
cmdbar_updater:
|
||||||
@$(MAKE) -C updater FLAGS=$(FLAGS) all
|
@$(MAKE) -C updater FLAGS=$(FLAGS)
|
||||||
@cp updater/$@ .
|
@cp updater/$@ .
|
||||||
|
|
||||||
./arm64/%.o: %.swift
|
./arm64/%.o: %.swift zip
|
||||||
swift -frontend -c $(if $(DEBUG), -D DEBUG,) \
|
swift -frontend -c $(if $(DEBUG), -D DEBUG,) \
|
||||||
-target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) \
|
-target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) \
|
||||||
-I./libs/Zip/Zip -I./libs/Zip/Zip/arm64 -L./libs/Zip/Zip/arm64 \
|
-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 $@
|
-sdk $(SDK) -module-name $(EXEC) -o $@ -emit-module && touch $@
|
||||||
|
|
||||||
ifdef UNIVERSAL
|
ifdef UNIVERSAL
|
||||||
./x86_64/%.o: %.swift
|
./x86_64/%.o: %.swift zip
|
||||||
@swift -frontend -c $(if $(DEBUG), -D DEBUG,) \
|
@swift -frontend -c $(if $(DEBUG), -D DEBUG,) \
|
||||||
-target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) \
|
-target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) \
|
||||||
-I./libs/Zip/Zip -I./libs/Zip/Zip/x86_64 -L./libs/Zip/Zip/x86_64 \
|
-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 \
|
codesign -s ${APPLE_DEVELOPER_ID_APPLICATION} -f --timestamp \
|
||||||
-o runtime $(EXEC).app)
|
-o runtime $(EXEC).app)
|
||||||
|
|
||||||
all: zip cmdbar_updater $(EXEC).app
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(EXEC) $(EXEC).app cmdbar_updater arm64 x86_64
|
rm -rf $(EXEC) $(EXEC).app cmdbar_updater arm64 x86_64
|
||||||
mkdir arm64 x86_64
|
|
||||||
|
|
||||||
clean-all: clean
|
clean-all: clean
|
||||||
$(MAKE) -C libs/Zip/Zip clean-all
|
$(MAKE) -C libs/Zip/Zip clean-all
|
||||||
|
|||||||
@@ -2,32 +2,31 @@ CC = swiftc
|
|||||||
CFLAGS = -g
|
CFLAGS = -g
|
||||||
FLAGS = -g
|
FLAGS = -g
|
||||||
|
|
||||||
build_minizip:
|
default: prereq build_minizip ./arm64/libzip.a ./x86_64/libzip.a
|
||||||
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
|
||||||
@$(MAKE) -C minizip CFLAGS=$(CFLAGS) MACOS_VERSION=$(MACOS_VERSION) all
|
|
||||||
|
|
||||||
./arm64/libzip.a: Zip.swift QuickZip.swift ZipUtilities.swift \
|
prereq:
|
||||||
./minizip/arm64/zip.o ./minizip/arm64/unzip.o ./minizip/arm64/ioapi.o
|
@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))
|
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
||||||
swiftc -target arm64-apple-macos$(MACOS_VERSION) -I./minizip/module \
|
swiftc -target arm64-apple-macos$(MACOS_VERSION) -I./minizip/module \
|
||||||
-I./minizip/include -L./minizip/arm64 $(FLAGS) -static \
|
-I./minizip/include -L./minizip/arm64 $(FLAGS) -static \
|
||||||
-module-name Zip -emit-library -emit-module -parse-as-library \
|
-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 \
|
./x86_64/libzip.a: build_minizip Zip.swift QuickZip.swift ZipUtilities.swift
|
||||||
./minizip/x86_64/zip.o ./minizip/x86_64/unzip.o \
|
|
||||||
./minizip/x86_64/ioapi.o
|
|
||||||
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
||||||
@swiftc -target x86_64-apple-macos$(MACOS_VERSION) -I./minizip/module \
|
@swiftc -target x86_64-apple-macos$(MACOS_VERSION) -I./minizip/module \
|
||||||
-I./minizip/include -L./minizip/x86_64 $(FLAGS) -static \
|
-I./minizip/include -L./minizip/x86_64 $(FLAGS) -static \
|
||||||
-module-name Zip -emit-library -emit-module -parse-as-library \
|
-module-name Zip -emit-library -emit-module -parse-as-library \
|
||||||
$^ -o $@
|
$(filter-out build_minizip, $^) ./minizip/x86_64/libminizip.a -o $@
|
||||||
|
|
||||||
all: build_minizip ./arm64/libzip.a ./x86_64/libzip.a
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf arm64 x86_64
|
rm -rf arm64 x86_64
|
||||||
mkdir arm64 x86_64
|
|
||||||
|
|
||||||
clean-all: clean
|
clean-all: clean
|
||||||
$(MAKE) -C minizip clean
|
$(MAKE) -C minizip clean
|
||||||
|
|||||||
@@ -6,6 +6,12 @@ HEADERS = $(wildcard ./include/*.h)
|
|||||||
CC = clang
|
CC = clang
|
||||||
CFLAGS = -g
|
CFLAGS = -g
|
||||||
|
|
||||||
|
defult: prereq ./arm64/libminizip.a ./x86_64/libminizip.a
|
||||||
|
# default: $(ARMOBJMODULES) $(X86OBJMODULES)
|
||||||
|
|
||||||
|
prereq:
|
||||||
|
@mkdir -p arm64 x86_64
|
||||||
|
|
||||||
./arm64/%.o: %.c $(HEADERS)
|
./arm64/%.o: %.c $(HEADERS)
|
||||||
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
@:$(if $(value MACOS_VERSION),,$(error MACOS_VERSION is not defined))
|
||||||
$(CC) -target arm64-apple-macos -mmacosx-version-min=$(MACOS_VERSION) \
|
$(CC) -target arm64-apple-macos -mmacosx-version-min=$(MACOS_VERSION) \
|
||||||
@@ -18,10 +24,11 @@ CFLAGS = -g
|
|||||||
$(CFLAGS) -fmodule-file=./module/module.modulemap -I./include \
|
$(CFLAGS) -fmodule-file=./module/module.modulemap -I./include \
|
||||||
-c $< -o ./$@
|
-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:
|
clean:
|
||||||
rm -rf arm64 x86_64
|
rm -rf arm64 x86_64
|
||||||
mkdir arm64 x86_64
|
|
||||||
|
|||||||
@@ -10,21 +10,23 @@ EXEC = cmdbar_updater
|
|||||||
|
|
||||||
FRAMEWORKS = -framework AppKit
|
FRAMEWORKS = -framework AppKit
|
||||||
|
|
||||||
|
default: prereq $(EXEC)
|
||||||
|
|
||||||
|
prereq:
|
||||||
|
@mkdir -p arm64 x86_64
|
||||||
|
|
||||||
./arm64/$(EXEC): $(FILES)
|
./arm64/$(EXEC): $(FILES)
|
||||||
$(CC) -target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \
|
$(CC) -target arm64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \
|
||||||
$(FRAMEWORKS) -o $@
|
$(FRAMEWORKS) -o $@
|
||||||
|
|
||||||
./x86_64/$(EXEC): $(FILES)
|
./x86_64/$(EXEC): $(FILES)
|
||||||
$(CC) -target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \
|
@$(CC) -target x86_64-apple-macos$(MACOS_VERSION) $(FLAGS) $^ \
|
||||||
$(FRAMEWORKS) -o $@
|
$(FRAMEWORKS) -o $@
|
||||||
|
|
||||||
$(EXEC): ./arm64/$(EXEC) ./x86_64/$(EXEC)
|
$(EXEC): prereq ./arm64/$(EXEC) ./x86_64/$(EXEC)
|
||||||
lipo -create -output $(EXEC) $^ && \
|
lipo -create -output $(EXEC) $(filter-out prereq, $^) && \
|
||||||
codesign -s ${APPLE_DEVELOPER_ID_APPLICATION} -f --timestamp \
|
codesign -s ${APPLE_DEVELOPER_ID_APPLICATION} -f --timestamp \
|
||||||
-o runtime $(EXEC)
|
-o runtime $(EXEC)
|
||||||
|
|
||||||
all: $(EXEC)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf arm64 x86_64 $(EXEC)
|
rm -rf arm64 x86_64 $(EXEC)
|
||||||
mkdir arm64 x86_64
|
|
||||||
|
|||||||
Reference in New Issue
Block a user