]> git.armaanb.net Git - bin.git/commitdiff
meta: update build system
authorArmaan Bhojwani <me@armaanb.net>
Sun, 30 May 2021 04:37:30 +0000 (00:37 -0400)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 30 May 2021 04:43:48 +0000 (00:43 -0400)
.gitignore
GNUmakefile [deleted file]
Makefile [new file with mode: 0644]

index dd6e19afed3d05e3055cbdf5f66713c36efcf765..38f0315920d12ec62f158657965bc9a79dd671fc 100644 (file)
@@ -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 (file)
index 78858e6..0000000
+++ /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 (file)
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