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
|
||||
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user