tUse suckless-style makefile and config.mk - ve - a minimal text editor (work i… | |
git clone git://src.adamsgaard.dk/ve | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1bc14ba4486a54f84e5ddfe2a6b67da1479e0e60 | |
parent 7a8cfc0fc10085e622932f958235613b9ca8e149 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Wed, 7 Aug 2019 22:00:35 +0200 | |
Use suckless-style makefile and config.mk | |
Diffstat: | |
M Makefile | 33 +++++++++++++++++++++--------… | |
A config.mk | 11 +++++++++++ | |
M ve.c | 9 +-------- | |
3 files changed, 34 insertions(+), 19 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
t@@ -1,13 +1,15 @@ | |
.POSIX: | |
+include config.mk | |
+ | |
CFLAGS = -g -std=c99 -pedantic -Wall -Wextra | |
LDFLAGS = | |
SRC = ve.c | |
OBJ = $(SRC:.c=.o) | |
BIN = ve | |
+VECFLAGS = -DVERSION=\"$(VERSION)\" -DPROGNAME=\"$(BIN)\" -D_DEFAULT_SOURCE $(… | |
PREFIX ?= /usr/local | |
-INSTALL ?= install | |
STRIP ?= strip | |
default: $(BIN) | |
t@@ -15,23 +17,32 @@ default: $(BIN) | |
$(BIN): $(OBJ) | |
$(CC) $(LDFLAGS) $(OBJ) -o $@ | |
+.c.o: | |
+ $(CC) $(VECFLAGS) -c $< | |
+ | |
+options: | |
+ @echo $(BIN) build options: | |
+ @echo "CFLAGS = $(VECFLAGS)" | |
+ @echo "LDFLAGS = $(LDFLAGS)" | |
+ @echo "CC = $(CC)" | |
+ | |
install: $(BIN) | |
$(STRIP) $(BIN) | |
- $(INSTALL) -m 0755 -d $(DESTDIR)$(PREFIX)/bin | |
- $(INSTALL) -m 0755 $(BIN) $(DESTDIR)$(PREFIX)/bin | |
+ mkdir -p $(DESTDIR)$(PREFIX)/bin | |
+ mkdir -p $(DESTDIR)$(MANPREFIX)/man1 | |
+ mkdir -p $(DESTDIR)$(DOCPREFIX)/$(BIN) | |
+ install -m 644 README LICENSE $(DESTDIR)$(DOCPREFIX)/$(BIN) | |
+ install -m 775 $(BIN) $(DESTDIR)$(PREFIX)/bin | |
+ sed "s/VERSION/$(VERSION)/g" < $(BIN).1 > $(DESTDIR)$(MANPREFIX)/man1/… | |
+ chmod 644 $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1 | |
uninstall: | |
$(RM) $(DESTDIR)$(PREFIX)/bin/$(BIN) | |
- | |
-test: $(BIN) | |
- make -C test/ | |
- | |
-memtest: $(BIN) | |
- valgrind --error-exitcode=1 --leak-check=full $(BIN) -h | |
- valgrind --error-exitcode=1 --leak-check=full $(BIN) -v | |
+ $(RM) $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1 | |
+ $(RM) -r $(DESTDIR)$(DOCPREFIX)/$(BIN) | |
clean: | |
$(RM) *.o | |
$(RM) $(BIN) | |
-.PHONY: default install uninstall test memtest clean | |
+.PHONY: default install uninstall clean options | |
diff --git a/config.mk b/config.mk | |
t@@ -0,0 +1,11 @@ | |
+# Customize to fit your system | |
+VERSION = 0.1.0 | |
+ | |
+# paths | |
+PREFIX = /usr/local | |
+MANPREFIX = ${PREFIX}/share/man | |
+DOCPREFIX = ${PREFIX}/share/doc | |
+ | |
+# build config | |
+CFLAGS = -g -std=c99 -pedantic -Wall -Wextra | |
+LDFLAGS = | |
diff --git a/ve.c b/ve.c | |
t@@ -1,10 +1,5 @@ | |
/* see LICENSE for license details */ | |
-/* add feature test macro for getline and strdup compatibility */ | |
-#define _DEFAULT_SOURCE | |
-#define _BSD_SOURCE | |
-#define _GNU_SOURCE | |
- | |
#include <ctype.h> | |
#include <errno.h> | |
#include <fcntl.h> | |
t@@ -21,8 +16,6 @@ | |
/* macros */ | |
-#define PROGNAME "ve" | |
-#define VERSION "0.0.1" | |
#define TAB_WIDTH 4 | |
#define STATUS_MESSAGE_TIMEOUT 3 | |
#define ABUF_INIT {NULL, 0} | |
t@@ -1051,7 +1044,7 @@ main(int argc, char* argv[]) | |
file_open(argv[1]); | |
} | |
- editor_set_status_message("%s v%s", PROGNAME, VERSION); | |
+ editor_set_status_message("%s %s", PROGNAME, VERSION); | |
while (1) { | |
editor_refresh_screen(); |