28 lines
620 B
Makefile
28 lines
620 B
Makefile
DEST=$(O)/kboot
|
|
OBJS=$(DEST)/main.o $(DEST)/data.o
|
|
CFLAGS=-mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mcmodel=large
|
|
|
|
$(if $(O),,$(error Specify the target directory))
|
|
|
|
$(DEST)/kboot.elf: $(DEST) $(DEST)/kernel.lds $(OBJS)
|
|
@$(LD) $(LDFLAGS) -o $@ -T $(DEST)/kernel.lds -nostdlib $(OBJS)
|
|
|
|
$(DEST)/%.o: %.c
|
|
@$(CC) $(CFLAGS) -c -o $@ -O3 $<
|
|
|
|
$(DEST)/data.o: data.S
|
|
@$(CC) -c -o $@ -O3 -DKIMAGE='"$(KIMAGE)"' $^
|
|
|
|
$(DEST)/kernel.lds: kernel.lds.S
|
|
$(if $(LOAD_PA),,$(error Specify the loading physical address))
|
|
@$(CC) -E -P -DLOAD_PA=$(LOAD_PA) -o $@ $<
|
|
|
|
$(DEST):
|
|
@mkdir -p $(DEST)
|
|
|
|
clean:
|
|
@$(RM) $(DEST)/*
|
|
|
|
.PHONY: clean
|
|
|