39 lines
720 B
Makefile
39 lines
720 B
Makefile
.PHONY: all
|
|
all: build/sentinel-kernel.bin
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@find build -type f \( \
|
|
-name '*.pgz' -o \
|
|
-name '*.bin' -o \
|
|
-name '*.elf' -o \
|
|
-name '*.a' \
|
|
\) -delete
|
|
@find src -type f \( \
|
|
-name '*.o' -o \
|
|
-name '*.d' -o \
|
|
-name '$(TARGET)' \
|
|
\) -delete
|
|
@rm -f *.lst
|
|
|
|
%.o: %.c
|
|
@echo "Compiling $@..."
|
|
@$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
|
%.o: %.s
|
|
@echo "Assembling $@)..."
|
|
@$(AS) $(ASFLAGS) -o $@ $<
|
|
|
|
%.d: %.c
|
|
@echo "Generating dependencies for $<"
|
|
@printf '%s' "$(dir $@)" > $@
|
|
@$(CC) $(CFLAGS) --dependencies $< >> $@
|
|
|
|
build/sentinel-kernel.bin: $(KERNEL_OBJ)
|
|
@echo "Linking $@..."
|
|
# @$(AR) $@ $^
|
|
$(LD) $(LDFLAGS) -o $@ $^
|
|
@rm -f $@
|
|
@mv build/sentinel-kernel.raw $@
|
|
-include $(KERNEL_DEP)
|