Skip to content

Commit 9da7c40

Browse files
authored
Merge pull request #74 from kkebo/improve-makefile
build: improve Makefile
2 parents 90dea13 + ce3e4b5 commit 9da7c40

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Makefile

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
EXE := kernel.elf
2-
IMG := kernel8.img
3-
MAP := kernel.map
1+
LIB := .build/release/libKernel.a
2+
EXE := .build/kernel.elf
3+
IMG := .build/kernel8.img
4+
MAP := .build/kernel.map
5+
LINKER_SCRIPT := linker.ld
46

57
TRIPLE := aarch64-none-none-elf
68
SWIFT := swift
79
SWIFT_BUILD_FLAGS := --triple $(TRIPLE) -c release -Xswiftc -Osize \
8-
--experimental-lto-mode=full -Xswiftc -experimental-hermetic-seal-at-link
10+
--experimental-lto-mode=full -Xswiftc -experimental-hermetic-seal-at-link
911
LD := clang -fuse-ld=lld
1012
LDFLAGS := --target=$(TRIPLE) -nostdlib -static -Wl,--gc-sections,--print-gc-sections,--strip-all
1113
OBJCOPY := llvm-objcopy
@@ -14,23 +16,21 @@ QEMU := qemu-system-aarch64
1416
.PHONY: all
1517
all: $(IMG)
1618

17-
$(EXE): linker.ld swift
18-
$(LD) $(LDFLAGS) -T linker.ld -Xlinker -Map=$(MAP) .build/release/libKernel.a -o $@
19+
$(EXE): Makefile $(LINKER_SCRIPT) $(LIB)
20+
$(LD) $(LDFLAGS) -T $(LINKER_SCRIPT) -Xlinker -Map=$(MAP) $(LIB) -o $@
1921

20-
$(IMG): $(EXE)
21-
$(OBJCOPY) $< -O binary $@
22+
$(IMG): Makefile $(EXE)
23+
$(OBJCOPY) $(EXE) -O binary $@
2224

23-
.PHONY: swift
24-
swift:
25+
$(LIB): Makefile .swift-version Package.swift $(wildcard Package.resolved) Sources
2526
$(SWIFT) build $(SWIFT_BUILD_FLAGS)
2627

2728
.PHONY: run
28-
run: all
29+
run: $(IMG)
2930
$(QEMU) -machine raspi4b -kernel $(IMG) -serial stdio
3031

3132
.PHONY: clean
3233
clean:
33-
$(RM) $(EXE) $(IMG) $(MAP)
3434
$(SWIFT) package clean
3535

3636
.PHONY: lint

0 commit comments

Comments
 (0)