blob: 33188bf5629232c0075d1a52ca560e1799e778c9 (
plain)
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
|
OBJ := $(shell cat OBJ)
CC = gcc
LD = ld
INCLUDES = -Idrivers/include -Ikernel/include -Ilibc/include
CFLAGS = -std=gnu99 -ffreestanding -fno-stack-protector -nostdlib -Wall -Wextra -m32 $(INCLUDES) -g
EMULATOR = qemu-system-i386
AS = as
ASFLAGS=-march=i686 --32
ISODIR = isodir
all: kappa.bin
test: iso
@echo "EMULATOR kappa.iso"
@$(EMULATOR) kappa.iso
iso: kappa.bin
@echo "Building ISO under $(ISODIR)/..."
@mkdir -p $(ISODIR)
@mkdir -p $(ISODIR)/boot
@cp kappa.bin $(ISODIR)/efi.img
@cp kappa.bin $(ISODIR)/boot/kappa.bin
@mkdir -p $(ISODIR)/boot/grub
@cp cdrom/grub.cfg $(ISODIR)/boot/grub
@grub-mkrescue -o kappa.iso $(ISODIR) 2> /dev/null
kappa.bin: $(OBJ) $(SOURCES) Makefile
@$(LD) -T kernel/linker.ld -o kappa.bin -melf_i386 $(OBJ)
@echo "LD $@"
%.o: %.c
@$(CC) $(CFLAGS) -c $< -o $@
@echo "CC $<"
%.o: %.S
@$(AS) $(ASFLAGS) -c $< -o $@
@echo "AS $<"
clean:
@echo "Cleaning build directory..."
@rm -f $(OBJ) kappa.iso kappa.bin
@rm -rf $(ISODIR)
|