aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: e5b5830fafcf3c49923291919bb3618821e6e59c (plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Copyright (c) 2021  Teddy Wing
#
# This file is part of Re-Good Catalina Invert Colours.
#
# Re-Good Catalina Invert Colours is free software: you can
# redistribute it and/or modify it under the terms of the GNU General
# Public License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
# Re-Good Catalina Invert Colours is distributed in the hope that it
# will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
# the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Re-Good Catalina Invert Colours. If not, see
# <https://www.gnu.org/licenses/>.

SOURCES := $(shell ls *.{h,m})

DDHOTKEY_OBJ := $(patsubst %.m,%.o,$(wildcard lib/DDHotKey/*.m))

BUILD_DIR := $(abspath build)
LOCAL_INCLUDE_DIR := $(BUILD_DIR)/include

RELEASE_PRODUCT := invert-catalina-invert


.PHONY: all
all: $(RELEASE_PRODUCT)

$(RELEASE_PRODUCT): $(SOURCES) build/libddhotkey.a build/include/*.h
	clang -x objective-c \
		-mmacosx-version-min=10.7 \
		-framework Carbon \
		-framework Cocoa \
		-framework CoreGraphics \
		-framework CoreServices \
		-framework Foundation \
		-fno-objc-arc \
		-I./build/include \
		-L./build \
		-lddhotkey \
		-o invert-catalina-invert \
		$(SOURCES)

build/include/%.h: lib/DDHotKey/%.h | $(LOCAL_INCLUDE_DIR)
	cp $^ build/include/

lib/DDHotKey/%.o: lib/DDHotKey/%.m
	clang -x objective-c \
		-mmacosx-version-min=10.7 \
		-fobjc-arc \
		-c \
		$<

	mv *.o lib/DDHotKey/

build/libddhotkey.a: $(DDHOTKEY_OBJ) | $(BUILD_DIR)
	libtool -static \
		-o $@ \
		$^

$(BUILD_DIR):
	mkdir -p $@

$(LOCAL_INCLUDE_DIR): | $(BUILD_DIR)
	mkdir -p $@


.PHONY: clean
clean:
	rm -rf $(RELEASE_PRODUCT) \
		$(BUILD_DIR) \
		$(DDHOTKEY_OBJ)