From 09435bffe025a96e0d9c3b44ee9c505973b383bd Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Mon, 6 Oct 2025 05:06:16 -0400 Subject: Cleanup, fix bugs Ensure everything builds on C89 --- Makefile | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 1de4ff4..619da0f 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,32 @@ -SRCS := src/main.c src/utils.c src/lexer.c src/parser.c src/runtime.c src/library.c +SRCS := src/utils.c src/lexer.c src/parser.c src/runtime.c src/library.c +HEADERS := $(wildcard src/*.h) OBJECTS := $(SRCS:src/%.c=build/%.o) EXE := pit +LIB := libcolonq-pit.a CC ?= gcc -CHK_SOURCES ?= $(SRCS) +AR ?= ar +CHK_SOURCES ?= src/main.c $(SRCS) CPPFLAGS ?= -MMD -MP -CFLAGS ?= -Ideps/ -Isrc/ -Wall -Wextra -Wpedantic -ftrapv --std=c23 -g +CFLAGS ?= --std=c89 -g -Ideps/ -Isrc/ -Wall -Wextra -Wpedantic -Wconversion -Wformat-security -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wnull-dereference -Wfloat-equal -Wundef -Wpointer-arith -Wbad-function-cast -Wlogical-op -Wmissing-braces -Wcast-align -Wstrict-overflow=5 -ftrapv LDFLAGS ?= -g -static -.PHONY: all clean check-syntax +prefix ?= /usr/local +exec_prefix ?= $(prefix) +bindir ?= $(exec_prefix)/bin +includedir ?= $(prefix)/include +libdir ?= $(exec_prefix)/lib -all: $(EXE) +.PHONY: all clean install check-syntax -$(EXE): $(OBJECTS) +all: $(EXE) $(LIB) + +$(EXE): build/main.o $(LIB) $(CC) -o $@ $^ $(LDFLAGS) +$(LIB): $(OBJECTS) + ar rcs $@ $^ + build: mkdir build/ @@ -28,6 +40,12 @@ clean: TAGS: $(SRCS) etags $^ +install: $(EXE) $(LIB) + mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + install $(EXE) $(DESTDIR)$(bindir)/pit + install $(LIB) $(DESTDIR)$(libdir)/libpit.a + install $(HEADERS) $(DESTDIR)$(includedir) + check-syntax: TAGS gcc $(CFLAGS) -fsyntax-only $(CHK_SOURCES) -- cgit v1.2.3