diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2021-11-21 13:51:27 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2021-11-21 13:51:27 +0100 |
| commit | 5677c3b8503292b02a516441ef9328b002142717 (patch) | |
| tree | 1a8488235b9b8d8179662a3e5b583c69a71810b7 /Makefile | |
| parent | eeaf62eba40b81604c1208d4d74bdeebfccd6e15 (diff) | |
| download | bfc-5677c3b8503292b02a516441ef9328b002142717.tar.gz bfc-5677c3b8503292b02a516441ef9328b002142717.tar.bz2 bfc-5677c3b8503292b02a516441ef9328b002142717.zip | |
Added assembler and linker in bfc.c instead of Makefile, Added options to choose output filename and if output is assembly or executable
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 28 |
1 files changed, 5 insertions, 23 deletions
@@ -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) |
