From c6d44836fd8ed1442e01825cb0f9f97e7bf11515 Mon Sep 17 00:00:00 2001 From: David Moc Date: Wed, 3 Jun 2026 02:26:11 +0200 Subject: Harden editor logging and packaging --- Makefile | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 8 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 3a23f4f..79aecf7 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,62 @@ CC = clang +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin +DATADIR ?= $(PREFIX)/share +DOCDIR ?= $(DATADIR)/doc/ecex +ECEX_DATADIR ?= $(DATADIR)/ecex +ECEX_INCLUDEDIR ?= $(PREFIX)/include/ecex STATIC_LIB = include/libccdjit.a SHARED_LIB = include/libccdjit.so -SRC = src/main.c src/app.c src/completion.c src/path.c src/media.c src/render.c src/font.c src/util.c src/log.c src/buffers.c src/ecex.c src/plugin.c src/config.c src/eval.c +SRC = \ + src/main.c \ + src/app.c \ + src/completion.c \ + src/path.c \ + src/media.c \ + src/render.c \ + src/font.c \ + src/util.c \ + src/log.c \ + src/buffers.c \ + src/ecex.c \ + src/plugin.c \ + src/config.c \ + src/eval.c + +TEST_SRC = \ + tests/test_main.c \ + tests/test_plugin.c \ + tests/test_buffers.c \ + tests/test_completion_path.c \ + src/buffers.c \ + src/completion.c \ + src/path.c \ + src/util.c \ + src/log.c \ + src/plugin.c + BIN = bin/ecex PKG_CFLAGS = $(shell pkg-config --cflags glfw3 2>/dev/null) PKG_LIBS = $(shell pkg-config --libs glfw3 2>/dev/null || echo -lglfw) -CFLAGS ?= -std=c11 -Wall -Wextra -pedantic -Iinclude $(PKG_CFLAGS) +CPPFLAGS ?= -Iinclude $(PKG_CFLAGS) -DECEX_SYSTEM_INCLUDE_DIR=\"$(ECEX_INCLUDEDIR)\" +CFLAGS ?= -std=c11 -Wall -Wextra -pedantic LDLIBS = $(PKG_LIBS) -lGL -lm -.PHONY: all static shared clean run check sanitize debug release +.PHONY: all static shared clean run check sanitize debug release install uninstall all: static static: $(SRC) $(STATIC_LIB) @mkdir -p bin - $(CC) $(CFLAGS) $(SRC) $(STATIC_LIB) -o $(BIN) $(LDLIBS) + $(CC) $(CPPFLAGS) $(CFLAGS) $(SRC) $(STATIC_LIB) -o $(BIN) $(LDLIBS) shared: $(SRC) $(SHARED_LIB) @mkdir -p bin - $(CC) $(CFLAGS) $(SRC) -Linclude -lccdjit -o $(BIN) $(LDLIBS) + $(CC) $(CPPFLAGS) $(CFLAGS) $(SRC) -Linclude -lccdjit -o $(BIN) $(LDLIBS) run: static LD_LIBRARY_PATH=include ./$(BIN) @@ -35,12 +69,29 @@ release: static sanitize: CFLAGS += -O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer sanitize: LDLIBS += -fsanitize=address,undefined -sanitize: static +sanitize: SANITIZER_TEST_ENV = ASAN_OPTIONS=detect_leaks=0 +sanitize: static check check: @mkdir -p bin - $(CC) -std=c11 -Wall -Wextra -pedantic -Iinclude tests/test_core.c src/buffers.c src/completion.c src/path.c src/util.c src/log.c src/plugin.c -o bin/ecex-tests - ./bin/ecex-tests + $(CC) $(CPPFLAGS) $(CFLAGS) $(TEST_SRC) -o bin/ecex-tests + $(SANITIZER_TEST_ENV) ./bin/ecex-tests + +install: static + install -d "$(DESTDIR)$(BINDIR)" + install -d "$(DESTDIR)$(ECEX_INCLUDEDIR)" + install -d "$(DESTDIR)$(ECEX_DATADIR)/config" + install -d "$(DESTDIR)$(DOCDIR)" + install -m 755 "$(BIN)" "$(DESTDIR)$(BINDIR)/ecex" + install -m 644 include/*.h "$(DESTDIR)$(ECEX_INCLUDEDIR)/" + install -m 644 config/*.c "$(DESTDIR)$(ECEX_DATADIR)/config/" + install -m 644 README.md LICENSE docs/*.md "$(DESTDIR)$(DOCDIR)/" + +uninstall: + rm -f "$(DESTDIR)$(BINDIR)/ecex" + rm -rf "$(DESTDIR)$(ECEX_INCLUDEDIR)" + rm -rf "$(DESTDIR)$(ECEX_DATADIR)" + rm -rf "$(DESTDIR)$(DOCDIR)" clean: rm -f $(BIN) bin/ecex-tests -- cgit v1.2.3