1
1
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST ) ) )
2
2
current_dir := $(notdir $(patsubst % /,% ,$(dir $(mkfile_path ) ) ) )
3
3
4
+ # Universal build info mostly from
5
+ # https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary
6
+ # Insight on Universal dSYM from
7
+ # https://lists.apple.com/archives/xcode-users/2009/Apr/msg00034.html
8
+
4
9
MODULE := $(lastword $(subst ., ,$(current_dir ) ) )
5
10
PREFIX ?= ~/.hammerspoon
6
11
MODPATH = hs/_asm/undocumented
@@ -41,9 +46,13 @@ ALLFILES += $(SOFILES)
41
46
# CC=clang
42
47
CC =@clang
43
48
WARNINGS ?= -Weverything -Wno-objc-missing-property-synthesis -Wno-implicit-atomic-properties -Wno-direct-ivar-access -Wno-cstring-format-directive -Wno-padded -Wno-covered-switch-default -Wno-missing-prototypes -Werror-implicit-function-declaration -Wno-documentation-unknown-command -Wno-poison-system-directories
44
- EXTRA_CFLAGS ?= -F$(HS_APPLICATION ) /Hammerspoon.app/Contents/Frameworks -mmacosx-version-min=10.13
49
+ EXTRA_CFLAGS ?= -F$(HS_APPLICATION ) /Hammerspoon.app/Contents/Frameworks -DSOURCE_PATH="$(mkfile_path ) "
50
+ MIN_intel_VERSION ?= -mmacosx-version-min=10.13
51
+ MIN_arm64_VERSION ?= -mmacosx-version-min=11
45
52
46
53
CFLAGS += $(DEBUG_CFLAGS ) -fmodules -fobjc-arc -DHS_EXTERNAL_MODULE $(WARNINGS ) $(EXTRA_CFLAGS )
54
+ release : CFLAGS += -DRELEASE_VERSION=$(VERSION )
55
+ releaseWithDocs : CFLAGS += -DRELEASE_VERSION=$(VERSION )
47
56
LDFLAGS += -dynamiclib -undefined dynamic_lookup $(EXTRA_LDFLAGS )
48
57
49
58
all : verify $(shell uname -m)
@@ -58,19 +67,19 @@ universal: verify x86_64 arm64 $(SOFILES_univeral)
58
67
# (see also SOFILES above)
59
68
60
69
obj_x86_64/% .so : % .m $(HEADERS )
61
- $(CC ) $< $(CFLAGS ) $(LDFLAGS ) -target x86_64-apple-macos10.13 -o $@
70
+ $(CC ) $< $(CFLAGS ) $(MIN_intel_VERSION ) $( LDFLAGS ) -target x86_64-apple-macos10.13 -o $@
62
71
63
72
obj_arm64/% .so : % .m $(HEADERS )
64
- $(CC ) $< $(CFLAGS ) $(LDFLAGS ) -target arm64-apple-macos11 -o $@
73
+ $(CC ) $< $(CFLAGS ) $(MIN_arm64_VERSION ) $( LDFLAGS ) -target arm64-apple-macos11 -o $@
65
74
66
75
# for compiling all source files into one library
67
76
# (see also SOFILES above)
68
77
69
78
# obj_x86_64/%.so: $(OBJCFILES) $(HEADERS)
70
- # $(CC) $(OBJCFILES) $(CFLAGS) $(LDFLAGS) -target x86_64-apple-macos10.13 -o $@
79
+ # $(CC) $(OBJCFILES) $(CFLAGS) $(MIN_intel_VERSION) $( LDFLAGS) -target x86_64-apple-macos10.13 -o $@
71
80
#
72
81
# obj_arm64/%.so: $(OBJCFILES) $(HEADERS)
73
- # $(CC) $(OBJCFILES) $(CFLAGS) $(LDFLAGS) -target arm64-apple-macos11 -o $@
82
+ # $(CC) $(OBJCFILES) $(CFLAGS) $(MIN_arm64_VERSION) $( LDFLAGS) -target arm64-apple-macos11 -o $@
74
83
75
84
# creating the universal dSYM bundle is a total hack because I haven't found a better
76
85
# way yet... suggestions welcome
0 commit comments