From 52af0db47bfd5a4a11752a62e2b81f0271d41946 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Sun, 30 May 2021 00:37:30 -0400 Subject: [PATCH] meta: update build system --- .gitignore | 4 ++-- GNUmakefile | 15 --------------- Makefile | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 17 deletions(-) delete mode 100644 GNUmakefile create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index dd6e19a..38f0315 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -bin -a.out +build +a.out \ No newline at end of file diff --git a/GNUmakefile b/GNUmakefile deleted file mode 100644 index 78858e6..0000000 --- a/GNUmakefile +++ /dev/null @@ -1,15 +0,0 @@ -SRCS = $(wildcard *.c) -OUTS = $(patsubst %.c,%,$(SRCS)) - -all: setup $(OUTS) - -%: %.c - $(CC) $(CFLAGS) -o bin/$@ $< - -setup: - mkdir -p bin - -clean: - rm -rf bin - -.PHONY: clean diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..733b056 --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +CFLAGS := -Wall -Wextra -pedantic -D_POSIX_C_SOURCE=200112L ${CFLAGS} +PREFIX ?= /usr/local + +all: setup bin man + +bin: + for i in *.c; do \ + echo "CC\t$$i"; \ + $(CC) $(CFLAGS) -o build/bin/$$(basename "$$i" .c) "$$i"; \ + done + +man: + for i in man/*.scd; do \ + echo "SC\t$$i"; \ + scdoc < $$i > build/man/$$(basename "$$i" .scd); \ + done + +setup: + mkdir -p build/bin build/man + +install: + cp -r build/bin/* $(DESTDIR)/$(PREFIX)/bin/ + cp -r build/man/* $(DESTDIR)/$(PREFIX)/share/man/man1/ + +clean: + rm -rf build + +.PHONY: bin man clean install -- 2.39.2