This commit is contained in:
2025-10-04 19:44:33 -04:00
parent c12dbce62c
commit 258cb913ea

View File

@@ -1,12 +1,16 @@
PREFIX = /usr/bin/ PACKAGE := yait
YAIT_SRCS := $(wildcard src/*.c) $(wildcard lib/*.c) SRCS := $(wildcard src/*.c) $(wildcard lib/*.c)
YAIT_OBJS := $(patsubst src/%.c,build/obj/%.o,$(YAIT_SRCS)) OBJS := $(patsubst src/%.c,build/obj/%.o,$(SRCS))
YAIT := bin/yait BIN := bin/$(PACKAGE)
ALLOWED_DIRS = doc include man src tools lib COMMIT := $(shell git rev-list --count --all)
DISTDIRS := $(sort $(shell find . -maxdepth 1 -type d -not -name '.' -printf '%f\n')) FLAGS := -I. -DCOMMIT=$(COMMIT)
VERSION := $(shell git describe --tags --always --dirty)
TARBALL := $(PACKAGE)-$(VERSION).tar.gz
RELEASE_FILES := doc src lib COPYING AUTHORS README yait.1 INSTALL Makefile configure config.h
-include config.mak -include config.mak
@@ -23,49 +27,28 @@ build:
mkdir -p build/obj mkdir -p build/obj
build/obj/%.o: src/%.c config.mak build/obj/%.o: src/%.c config.mak
$(CC) $(CFLAGS) -DCOMMIT=$(shell git rev-list --count --all) -Iinclude -Ilib -c $< -o $@ $(CC) $(FLAGS) -c $< -o $@
$(YAIT): $(YAIT_OBJS) $(BIN): $(OBJS)
$(CC) $(CFLAGS) -Iinclude -Ilib -DCOMMIT=$(shell git rev-list --count --all) $^ -o $@ $(CC) $(FLAGS) $^ -o $@
endif endif
install: $(YAIT) install: $(BIN)
cp $(YAIT) $(PREFIX) cp $(BIN) $(PREFIX)
uninstall: uninstall:
$(RM) $(PREFIX)yait $(RM) $(PREFIX)$(PACKAGE)
clean: clean:
$(RM) -r bin $(RM) -r $(BIN)
$(RM) -r build $(RM) -r build
distclean: clean distclean: clean
$(RM) config.mak $(RM) config.mak
$(RM) $(TARBALL)
check: $(YAIT) release: clean all
./src/tests/run_unit_tests.sh tar -czf $(TARBALL) $(RELEASE_FILES)
syntax-check: .PHONY: all clean distclean install uninstall build release
@set -e; \
fail=0; \
for f in $(YAIT_SRCS); do \
echo "$$f"; \
if ! $(CC) $(CFLAGS) -fsyntax-only $$f; then \
fail=1; \
fi
done; \
if test $$fail -ne 0; then \
exit 1;
fi
distcheck: distclean
@set -e; \
for d in $(DESTDIRS); do \
case " $(ALLOWED_DIRS) " in \
*" $$d "*) ;; \
*) echo "Error unexpected directory '$$d'"; exit 1 ;; \
esac; \
done
.PHONY: all clean dist-clean install uninstall build release check syntax-check distcheck