.PHONY: all clean re .DEFAULT_GOAL := all SRC ?= $(wildcard src/*.s) OBJ = $(SRC:.s=.o) EXE ?= main AS ?= as LD ?= ld ASFLAGS ?= LDFLAGS ?= $(EXE): $(OBJ) $(LD) $(LDFLAGS) -o $@ $(OBJ) %.o: %.s $(AS) $(ASFLAGS) -o $@ $< all: $(EXE) clean: rm -f $(OBJ) $(EXE) re: clean all run: $(EXE) ./$(EXE)