CC ?= cc
CFLAGS ?= -O2 -g
CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -Wno-unused-function -Wno-logical-op-parentheses
LDLIBS += -lm
COMMON_OBJECTS = parser.o typecheck.o probe.o compiler.o platform.o
ifeq ($(OS),Windows_NT)
EXEEXT := .exe
else
EXEEXT :=
endif
.PHONY: all test clean debug
all: vedit$(EXEEXT)
vedit$(EXEEXT): main.o $(COMMON_OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
tests$(EXEEXT): tests.o $(COMMON_OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
test: tests$(EXEEXT)
./tests$(EXEEXT)
debug: CFLAGS := -std=c23 -O0 -g3 -Wall -Wextra -Wpedantic -Wno-unused-function \
-Wno-logical-op-parentheses -fsanitize=address,undefined
debug: clean tests$(EXEEXT)
./tests$(EXEEXT)
clean:
$(RM) vedit vedit.exe tests tests.exe *.o