forked from makalin/CornerFix
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (43 loc) · 1.9 KB
/
Copy pathMakefile
File metadata and controls
59 lines (43 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
BUILD_DIR := build
DYLIB := $(BUILD_DIR)/libcornerfix.dylib
CLI := $(BUILD_DIR)/cornerfixctl
INJECT := $(BUILD_DIR)/cornerfix-inject
TEST_APP_EXECUTABLE := $(BUILD_DIR)/CornerFixTestApp.app/Contents/MacOS/CornerFixTestApp
TEST_APP_BUNDLE := $(BUILD_DIR)/CornerFixTestApp.app
CC := clang
COMMON_FLAGS := -fobjc-arc -Wall -Wextra -Werror
FRAMEWORKS := -framework Foundation -framework AppKit -framework QuartzCore -framework ScreenCaptureKit -framework CoreMedia
PREFIX ?= /usr/local
COMMON_SOURCES := src/common/CFXShared.m
DYLIB_SOURCES := $(COMMON_SOURCES) src/sharpener/CFXSwizzle.m src/sharpener/CornerFixSharpener.m
CLI_SOURCES := $(COMMON_SOURCES) src/cli/main.m
INJECT_SOURCES := src/inject/main.m
TEST_APP_SOURCES := src/testapp/main.m
TEST_APP_PLIST := src/testapp/Info.plist
.PHONY: all clean dylib cli inject testapp examples install uninstall
all: dylib cli inject testapp
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
dylib: $(DYLIB)
$(DYLIB): $(DYLIB_SOURCES) | $(BUILD_DIR)
$(CC) $(COMMON_FLAGS) -dynamiclib $(DYLIB_SOURCES) $(FRAMEWORKS) -o $(DYLIB)
cli: $(CLI)
$(CLI): $(CLI_SOURCES) | $(BUILD_DIR)
$(CC) $(COMMON_FLAGS) $(CLI_SOURCES) -framework Foundation -o $(CLI)
inject: $(INJECT)
$(INJECT): $(INJECT_SOURCES) | $(BUILD_DIR)
$(CC) $(COMMON_FLAGS) $(INJECT_SOURCES) -framework Foundation -framework AppKit -o $(INJECT)
testapp: $(TEST_APP_EXECUTABLE)
$(TEST_APP_EXECUTABLE): $(TEST_APP_SOURCES) $(TEST_APP_PLIST) | $(BUILD_DIR)
mkdir -p $(BUILD_DIR)/CornerFixTestApp.app/Contents/MacOS
mkdir -p $(BUILD_DIR)/CornerFixTestApp.app/Contents/Resources
cp $(TEST_APP_PLIST) $(BUILD_DIR)/CornerFixTestApp.app/Contents/Info.plist
$(CC) $(COMMON_FLAGS) $(TEST_APP_SOURCES) -framework Foundation -framework AppKit -o $(TEST_APP_EXECUTABLE)
examples: all
chmod +x examples/*.sh
install: all examples
PREFIX=$(PREFIX) ./scripts/install.sh
uninstall:
PREFIX=$(PREFIX) ./scripts/uninstall.sh
clean:
rm -rf $(BUILD_DIR)