SSRC := $(shell find src -name '*.s') CSRC := $(shell find src -name '*.c') OBJ := $(patsubst src/%.c,obj/%.o,$(CSRC))\ $(patsubst src/%.s,obj/%.o,$(SSRC)) CC := i386-elf-gcc CFLAGS := -std=gnu99 -ffreestanding -O2 -Wall -Wextra -iquoteheaders -c AS := i386-elf-as ASFLAGS := AR := ar ARFLAGS := NAME = libbozo.a obj/%.o: src/%.s mkdir -p $(dir $@) $(AS) $(ASFLAGS) $< -o $@ obj/%.o: src/%.c mkdir -p $(dir $@) $(CC) $(CFLAGS) $< -o $@ all : $(NAME) clean : rm -rf obj fclean : clean rm -rf build $(NAME) : $(OBJ) mkdir -p build $(AR) -rc build/$(NAME) $(OBJ) re: fclean all .PHONY: clean fclean all re