~james/scope

scope/guest/Makefile -rw-r--r-- 759 bytes
6e057d53 — james chore(import): snapshot james.dad.town/scope at 034e6b67d44c 16 hours ago
                                                                                
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
CC ?= cc
LD ?= ld
OBJCOPY ?= objcopy
CFLAGS = -std=c11 -O2 -Wall -Wextra -Werror -ffreestanding -fno-pie -fno-stack-protector -fno-builtin -mno-red-zone -mgeneral-regs-only

.PHONY: all check clean

all: build/disk

build:
	mkdir -p build

build/boot.o: boot.S | build
	$(CC) -c -m64 -fno-pie $< -o $@

build/guest.o: guest.c | build
	$(CC) $(CFLAGS) -c $< -o $@

build/guest: build/boot.o build/guest.o layout.ld
	$(LD) -T layout.ld build/boot.o build/guest.o -o $@

build/disk: build/guest
	$(OBJCOPY) -O binary $< $@
	python3 -c 'from pathlib import Path; p = Path("$@"); b = p.read_bytes(); assert len(b) <= 61440; p.write_bytes(b.ljust(61952, b"\0"))'

check: build/disk
	python3 verify.py ../_build/default/bin/main.exe build/disk

clean:
	rm -rf build