-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
66 lines (56 loc) · 1.6 KB
/
Copy pathMakefile
File metadata and controls
66 lines (56 loc) · 1.6 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
60
61
62
63
64
65
66
PRODUCT := fxcodex
CONFIGURATION ?= release
PREFIX ?= $(HOME)/.local
BINDIR ?= $(PREFIX)/bin
DESTDIR ?=
SWIFT ?= swift
SWIFT_BUILD_FLAGS ?=
INSTALL ?= install
DISTDIR ?= dist
MACOS_DEPLOYMENT_TARGET ?= 14.0
EXECUTABLE := .build/$(CONFIGURATION)/$(PRODUCT)
INSTALLED_EXECUTABLE := $(DESTDIR)$(BINDIR)/$(PRODUCT)
RELEASE_MACHINE := $(shell uname -m)
RELEASE_ARCH := $(if $(filter arm64,$(RELEASE_MACHINE)),aarch64,$(RELEASE_MACHINE))
RELEASE_EXECUTABLE := .build/release/$(PRODUCT)
RELEASE_ARTIFACT := $(PRODUCT)-$(RELEASE_ARCH)-apple-darwin
UNIVERSAL_RELEASE_ARTIFACT := $(PRODUCT)-universal-apple-darwin
UNIVERSAL_BUILD_SCRIPT := ./Scripts/build-universal.sh
.PHONY: all build test release universal install uninstall clean
all: build
build:
$(SWIFT) build \
$(SWIFT_BUILD_FLAGS) \
--configuration $(CONFIGURATION) \
--product $(PRODUCT)
test:
$(SWIFT) test
release:
$(SWIFT) build \
$(SWIFT_BUILD_FLAGS) \
--configuration release \
--product $(PRODUCT)
$(INSTALL) -d "$(DISTDIR)"
$(INSTALL) -m 755 \
"$(RELEASE_EXECUTABLE)" \
"$(DISTDIR)/$(RELEASE_ARTIFACT)"
cd "$(DISTDIR)" && \
shasum -a 256 "$(RELEASE_ARTIFACT)" \
> "$(RELEASE_ARTIFACT).sha256"
universal:
PRODUCT="$(PRODUCT)" \
CONFIGURATION="release" \
MACOS_DEPLOYMENT_TARGET="$(MACOS_DEPLOYMENT_TARGET)" \
OUTPUT_PATH="$(DISTDIR)/$(UNIVERSAL_RELEASE_ARTIFACT)" \
BUILD_SYSTEM="native" \
SWIFT="$(SWIFT)" \
"$(UNIVERSAL_BUILD_SCRIPT)"
install: build
$(INSTALL) -d "$(DESTDIR)$(BINDIR)"
$(INSTALL) -m 755 \
"$(EXECUTABLE)" \
"$(INSTALLED_EXECUTABLE)"
uninstall:
$(RM) "$(INSTALLED_EXECUTABLE)"
clean:
$(SWIFT) package clean