diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 30 |
1 files changed, 24 insertions, 6 deletions
@@ -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) |
