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