.PHONY: build test run clean rebuild CC ?= gcc PKG_CONFIG ?= pkg-config BUILD_DIR := build OBJ_DIR := $(BUILD_DIR)/obj BIN := $(BUILD_DIR)/lemacs RUN_FILE ?= SRC := \ src/main.c \ src/core/buffer.c \ src/core/editor.c \ src/core/lua_bridge.c OBJ := $(SRC:src/%.c=$(OBJ_DIR)/%.o) DEP := $(OBJ:.o=.d) CPPFLAGS += -Isrc -DLEMACS_RUNTIME_INIT=\"$(CURDIR)/runtime/init.lua\" CFLAGS += -std=c99 -Wall -Wextra -Wpedantic -O2 -MMD -MP LDLIBS += $(shell $(PKG_CONFIG) --libs raylib lua5.4 fontconfig) -lm LDFLAGS += build: $(BIN) $(BIN): $(OBJ) mkdir -p "$(BUILD_DIR)" $(CC) $(OBJ) $(LDFLAGS) $(LDLIBS) -o "$@" $(OBJ_DIR)/%.o: src/%.c mkdir -p "$(dir $@)" $(CC) $(CPPFLAGS) $(CFLAGS) $(shell $(PKG_CONFIG) --cflags raylib lua5.4 fontconfig) -c "$<" -o "$@" test: build printf '%s\n' 'No test suite is configured yet.' run: build "./$(BIN)" $(RUN_FILE) clean: rm -rf "$(BUILD_DIR)" rebuild: clean build -include $(DEP)