aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile28
1 files changed, 5 insertions, 23 deletions
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)