diff options
author | Ian Moffett <ian@osmora.org> | 2025-09-17 15:03:22 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-09-17 15:03:22 -0400 |
commit | 5c40e61a6035315d4341ed508171bf68f3bc1955 (patch) | |
tree | 0988fdbc5b978fe35d2955364818c2b6088abdf4 | |
parent | 61aaead7e2904a2756ed72a71e36eeeb21591733 (diff) |
build: Add test program to src/cmd/
Add a testing program for ELF loading purposes. This is to be removed in
later versions of Lunos
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r-- | src/Makefile | 10 | ||||
-rw-r--r-- | src/cmd/Makefile | 10 | ||||
-rw-r--r-- | src/cmd/test/Makefile | 15 | ||||
-rw-r--r-- | src/cmd/test/test.c | 6 |
4 files changed, 39 insertions, 2 deletions
diff --git a/src/Makefile b/src/Makefile index c29402b..53b2d5e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2,7 +2,7 @@ TARGET = amd64 KBIN = sys/l5 SHIMDIR = shim SHIMBIN = BOOTX64.EFI -SYSROOT = root +SYSROOT = $(shell pwd)/root OMAR = tools/omar/bin/omar ISO = lunos.iso @@ -18,17 +18,23 @@ QEMU_FLAGS = --enable-kvm -serial stdio -cdrom $(ISO) \ -M q35 -cpu host -smp 4 -m 2G .PHONY: all -all: root sys image +all: root user sys image .PHONY: sys sys: cd sys/; make CC=$(CC) AS=$(AS) LD=$(LD) TARGET=$(TARGET) CONF=$(CONF) cp $(KBIN) root/boot/ +.PHONY: user +user: + cd cmd/; make CC=$(CC) AS=$(AS) LD=$(LD) TARGET=$(TARGET) \ + SYSROOT=$(SYSROOT) + root: mkdir -p $(SYSROOT)/ mkdir -p $(SYSROOT)/boot/ mkdir -p $(SYSROOT)/usr/include/ + mkdir -p $(SYSROOT)/usr/bin/ mkdir -p sys/target/header/ rsync -av sys/include/arch/$(TARGET)/ sys/target/header/machine/ diff --git a/src/cmd/Makefile b/src/cmd/Makefile new file mode 100644 index 0000000..2d1c7f8 --- /dev/null +++ b/src/cmd/Makefile @@ -0,0 +1,10 @@ +LDSCRIPT=../../sys/arch/$(TARGET)/conf/user.ld + +.PHONY: all +all: + cd test/; LDSCRIPT=$(LDSCRIPT) CC=$(CC) ASM=$(ASM) \ + LD=$(ASM) SYSROOT=$(SYSROOT) make + +.PHONY: clean +clean: + cd test/; make clean diff --git a/src/cmd/test/Makefile b/src/cmd/test/Makefile new file mode 100644 index 0000000..d1488b5 --- /dev/null +++ b/src/cmd/test/Makefile @@ -0,0 +1,15 @@ +include ../../data/build/user.mk + +CFILES = $(shell find . -name "*.c") +CFILES = $(shell find . -name "*.c") +OBJECTS = $(CFILES:%.c=%.o) + +$(SYSROOT)/usr/bin/test: $(OBJECTS) + $(LD) $(OBJECTS) -o $@ $(INTERNAL_CFLAGS) + +%.o: %.c + $(CC) $(INTERNAL_CFLAGS) -c $(CFLAGS) $< -o $@ + +.PHONY: clean +clean: + rm -f *.o *.d diff --git a/src/cmd/test/test.c b/src/cmd/test/test.c new file mode 100644 index 0000000..693fb65 --- /dev/null +++ b/src/cmd/test/test.c @@ -0,0 +1,6 @@ +__attribute__((naked)) +void +_start(void) +{ + for (;;); +} |