gists/first-interpreter/Makefile
2026-01-09 09:49:45 +02:00

38 lines
977 B
Makefile

ifndef VERBOSE
.SILENT:
endif
CC = gcc
CFLAGS = -Wall -Wextra -ggdb
BUILD_DIR = _build
.DEFAULT_TARGET = interpreter
interpreter: src/main.c $(BUILD_DIR)/run.o
$(CC) $(CFLAGS) $< -o $@ $(BUILD_DIR)/run.o $(BUILD_DIR)/ast.o $(BUILD_DIR)/lex.o $(BUILD_DIR)/parse.o $(BUILD_DIR)/execute.o
$(BUILD_DIR)/ast.o: src/ast.c src/ast.h
mkdir -p $(BUILD_DIR)/
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/lex.o: src/lex.c src/lex.h
mkdir -p $(BUILD_DIR)/
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/parse.o: src/parse.c src/parse.h $(BUILD_DIR)/ast.o $(BUILD_DIR)/lex.o
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/execute.o: src/execute.c src/execute.h $(BUILD_DIR)/ast.o
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/run.o: src/run.c src/run.h $(BUILD_DIR)/ast.o $(BUILD_DIR)/lex.o $(BUILD_DIR)/parse.o $(BUILD_DIR)/execute.o
$(CC) $(CFLAGS) -c $< -o $@
.PHONY clean run:
clean:
rm -rf _build
rm -rf interpreter
rm -rf interpreter.dSYM
run: interpreter
./interpreter program.code