ifeq ($(shell uname -s),Darwin) AFLAGS += -fmacho64 LDFLAGS += -lSystem LD = clang endif ifeq ($(shell uname -s),Linux) AFLAGS += -felf64 LD = ld endif OUT_BIN=build .PHONY: clean $(OUT_BIN) default: clean $(OUT_BIN) $(OUT_BIN): main.o $(LD) $(LDFLAGS) -o $@ $^ %.o: %.asm nasm $(AFLAGS) $< -o $@ clean: -rm *.o $(OUT_BIN)