From 5677c3b8503292b02a516441ef9328b002142717 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sun, 21 Nov 2021 13:51:27 +0100 Subject: Added assembler and linker in bfc.c instead of Makefile, Added options to choose output filename and if output is assembly or executable --- Makefile | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 07a867d..8d1c0b8 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,13 @@ CC = gcc CCFLAGS = -Wall -Wextra -std=c99 -NASM = nasm - -ifeq ($(shell uname),Linux) - NASMFLAGS = -f elf64 -endif -ifeq ($(shell uname),Darwin) - NASMFLAGS = -f macho64 -endif -ifeq ($(NASMFLAGS),) - $(error architecture: $(shell uname) not recognized) -endif SRC = bfc.c NAME = bfc -ASMDIR = asm BINDIR = bin EXAMPLESDIR = examples EXAMPLES = $(shell find $(EXAMPLESDIR) -name '*.bf' -type f) -EXAMPLES_ASM = $(EXAMPLES:$(EXAMPLESDIR)/%.bf=$(ASMDIR)/%.asm) EXAMPLES_NAME = $(EXAMPLES:$(EXAMPLESDIR)/%.bf=$(BINDIR)/%) all: $(NAME) $(EXAMPLES_NAME) @@ -28,26 +15,21 @@ all: $(NAME) $(EXAMPLES_NAME) $(NAME): bfc.c $(CC) $(CCFLAGS) -o $@ $< -$(BINDIR)/%: $(ASMDIR)/%.asm $(BINDIR) - $(NASM) $(NASMFLAGS) -o $@.o $< - ld -o $@ $@.o - -$(ASMDIR)/%.asm: $(EXAMPLESDIR)/%.bf $(ASMDIR) - ./$(NAME) < $< > $@ +$(BINDIR)/%: $(EXAMPLESDIR)/%.bf $(BINDIR) + ./$(NAME) -o $@ $< $(BINDIR): mkdir -pv $@ -$(ASMDIR): - mkdir -pv $@ - clean: - - rm -rv $(ASMDIR) - rm -rv $(BINDIR) - rm $(NAME) re: clean all +format: + clang-format -i bfc.c + # weird GNU make behavior where it rm's every asm files at the end # (https://stackoverflow.com/questions/47447369) .PRECIOUS: $(EXAMPLES_ASM) -- cgit