From 0f4cd96cbfe8cb87582933988a66dc9b1e7957e5 Mon Sep 17 00:00:00 2001 From: pjht Date: Sun, 17 Mar 2019 18:04:50 -0500 Subject: [PATCH] Re add program build into makefile --- Makefile | 6 +++++- prog/Makefile | 13 +++++++++++++ prog/main.c | 4 ++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 prog/Makefile create mode 100644 prog/main.c diff --git a/Makefile b/Makefile index b40d4a5..a17d91e 100644 --- a/Makefile +++ b/Makefile @@ -15,11 +15,15 @@ debug: os.iso kernel/kernel.elf qemu-system-i386 -s $(QFLAGS) & $(GDB) -ex "target remote localhost:1234" -ex "symbol-file kernel/kernel.elf" -os.iso: kernel/kernel.elf initrd/* +os.iso: kernel/kernel.elf initrd/* initrd/prog.elf cp kernel/kernel.elf iso/boot ruby makeinitrd.rb initrd iso/boot/initrd grub-mkrescue -o $@ iso +initrd/prog.elf: prog/* + cd prog && make + cp prog/prog.elf initrd + kernel/kernel.elf: $(OBJ) i386-elf-ld -T linker.ld -o $@ $^ diff --git a/prog/Makefile b/prog/Makefile new file mode 100644 index 0000000..45dbf34 --- /dev/null +++ b/prog/Makefile @@ -0,0 +1,13 @@ +C_SOURCES = $(wildcard *.c) +OBJ = $(C_SOURCES:.c=.o) +CFLAGS = -Wall -g -ffreestanding +CC = i386-elf-gcc + +prog.elf: $(OBJ) + i386-elf-ld -o $@ $^ + +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +clean: + rm -rf *.o prog.elf diff --git a/prog/main.c b/prog/main.c new file mode 100644 index 0000000..a8cdd51 --- /dev/null +++ b/prog/main.c @@ -0,0 +1,4 @@ +int _start() { + int x=17; + return x+3; +}