Files
thesis-lisp/Makefile
T
2021-04-06 17:38:09 +03:00

43 lines
902 B
Makefile

O=build
VM_OBJS=$(O)/vm/main.o \
$(O)/vm/vmstate.o \
$(O)/vm/vmstring.o \
$(O)/vm/vmval.o \
$(O)/core/vector.o
COMPILER_OBJS=$(O)/compiler/main.o \
$(O)/compiler/compile.o \
$(O)/compiler/node.o \
$(O)/compiler/parse.o \
$(O)/compiler/unit.o \
$(O)/core/vector.o \
$(O)/core/hash.o
CFLAGS=-Icore/include \
-Werror \
-Wall \
-Wextra
HDRS=$(shell find . -type f -name "*.h")
DIRS=$(shell find compiler core vm -type d -printf "$(O)/%p ")
all: $(DIRS) $(O)/l2vm $(O)/l2c
clean:
rm -rf $(O)
$(DIRS):
mkdir -p $@
$(O)/l2vm: $(VM_OBJS)
$(CC) $(LDFLAGS) -o $@ $(VM_OBJS)
$(O)/l2c: $(COMPILER_OBJS)
$(CC) $(LDFLAGS) -o $@ $(COMPILER_OBJS)
$(O)/vm/%.o: vm/%.c $(HDRS)
$(CC) -Ivm/include -c $(CFLAGS) -o $@ $<
$(O)/compiler/%.o: compiler/%.c $(HDRS)
$(CC) -Icompiler/include -c $(CFLAGS) -o $@ $<
$(O)/%.o: %.c $(HDRS)
$(CC) -c $(CFLAGS) -o $@ $<