.PHONY: all clean CC := x86_64-elf-gcc LD := x86_64-elf-ld override CFLAGS = -Wall \ -Wextra \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ -fno-lto \ -fno-PIC \ -ffunction-sections \ -fdata-sections \ -m64 \ -march=x86-64 \ -mabi=sysv \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ -mno-red-zone \ -mcmodel=kernel \ -I. \ -I../limine \ -DPRINTF_INCLUDE_CONFIG_H=1 override LDFLAGS = \ -m elf_x86_64 \ -nostdlib \ -static \ -z max-page-size=0x1000 \ --gc-sections \ -T link.ld override NASMFLAGS = \ -felf64 \ -Wall \ -F dwarf -g override SRCFILES := $(shell find -L . -type f 2>/dev/null | LC_ALL=C sort) override CFILES := $(filter %.c,$(SRCFILES)) override ASFILES := $(filter %.asm,$(SRCFILES)) override OBJ := $(patsubst %.c,%.o,$(CFILES)) $(patsubst %.asm,%.o,$(ASFILES)) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ %.o: %.asm nasm $(NASMFLAGS) $< -o $@ all: mop2 mop2: $(OBJ) $(LD) $^ $(LDFLAGS) -o $@ clean: rm -f $(OBJ) mop2