diff options
| author | David Moc <personal@cdatgoose.org> | 2026-06-03 02:26:11 +0200 |
|---|---|---|
| committer | David Moc <personal@cdatgoose.org> | 2026-06-03 02:26:11 +0200 |
| commit | c6d44836fd8ed1442e01825cb0f9f97e7bf11515 (patch) | |
| tree | d0e8cededdecafdf27476a744ac2d892d5a18620 /Makefile | |
| parent | b68766967c86a6a789d65772f69f7f44939ebdf2 (diff) | |
Harden editor logging and packaging
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 67 |
1 files changed, 59 insertions, 8 deletions
@@ -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 |
