include $(CONFIG) include config.mk CDIRS := boot CDIRS += boot/$(TARGET_BOOTLOADER) CDIRS += device lib syscall CFILES := $(wildcard *.c) CFILES += $(wildcard arch/$(TARGET_MACHINE)/*.c) CFILES += $(foreach dir, $(CDIRS), $(wildcard $(dir)/*.c)) CFILES += $(foreach dir, $(CDIRS), $(wildcard arch/$(TARGET_MACHINE)/$(dir)/*.c)) SFILES := $(wildcard *.s) SFILES += $(wildcard arch/$(TARGET_MACHINE)/*.s) SFILES += $(foreach dir, $(CDIRS), $(wildcard $(dir)/*.s)) SFILES += $(foreach dir, $(CDIRS), $(wildcard arch/$(TARGET_MACHINE)/$(dir)/*.s)) OBJFILES := $(patsubst %.c,%.o,$(CFILES)) OBJFILES += $(patsubst %.s,%.o,$(SFILES)) BIN := jove.elf all: $(BIN) .PHONY: clean clean: -rm $(OBJFILES) -rm $(BIN) $(BIN): ${OBJFILES} $(LD) $(LDFLAGS) ${OBJFILES} -o $(BIN) %.o:%.c $(CC) $(CFLAGS) -c $< -o $@ %.o:%.S $(AS) -g -c $< -o $@