aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2015-12-29 11:37:16 +0100
committerMarc André Tanner <mat@brain-dump.org>2015-12-29 11:48:43 +0100
commitb3ed399f1cce511c5a21b08d2b0fffeb615a4333 (patch)
tree5512e41584cc6c5d5dc067dc4bb5836d350ea993
parent51736d5d4468330cb2ffe45bb6fdf1119786195c (diff)
downloadvis-b3ed399f1cce511c5a21b08d2b0fffeb615a4333.tar.gz
vis-b3ed399f1cce511c5a21b08d2b0fffeb615a4333.tar.xz
Clean up build system
-rw-r--r--Makefile25
-rw-r--r--config.mk51
-rw-r--r--text.c12
3 files changed, 41 insertions, 47 deletions
diff --git a/Makefile b/Makefile
index f247162..85fdb76 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,18 @@
include config.mk
+# try to get a tag and hash first
+GITHASH = $(shell git log -1 --format='%h' 2>/dev/null)
+GITTAG = $(shell git describe --abbrev=0 --tags 2>/dev/null)
+ifneq ($(GITTAG),)
+ # we have a tag and revcount from there
+ GITREVCOUNT = $(shell git rev-list --count ${GITTAG}.. 2>/dev/null)
+ VERSION = ${GITTAG}.r${GITREVCOUNT}.g${GITHASH}
+else ifneq ($(GITHASH),)
+ # we have no tags in git, so just use revision count an hash for now
+ GITREVCOUNT = $(shell git rev-list --count HEAD)
+ VERSION = 0.r${GITREVCOUNT}.g${GITHASH}
+endif
+
SRCDIR = $(realpath $(dir $(firstword $(MAKEFILE_LIST))))
ALL = *.c *.h config.mk Makefile LICENSE README.md vis.1
@@ -56,12 +69,7 @@ clean:
dist: clean
@echo creating dist tarball
- @mkdir -p vis-${VERSION}
- @cp -R ${ALL} vis-${VERSION}
- @rm -f vis-${VERSION}/config.h
- @tar -cf vis-${VERSION}.tar vis-${VERSION}
- @gzip vis-${VERSION}.tar
- @rm -rf vis-${VERSION}
+ @git archive --prefix=vis-${VERSION}/ -o vis-${VERSION}.tar.gz HEAD
install: vis
@echo stripping executable
@@ -85,9 +93,8 @@ uninstall:
@rm -f ${DESTDIR}${PREFIX}/bin/vis
@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
@rm -f ${DESTDIR}${MANPREFIX}/man1/vis.1
-
-release:
- @git archive --prefix=vis-$(RELEASE)/ -o vis-$(RELEASE).tar.gz $(RELEASE)
+ @echo removing support files from ${DESTDIR}${SHAREPREFIX}
+ @[ ! -z "${SHAREPREFIX}" ] && rm -rf ${DESTDIR}${SHAREPREFIX}
dependency/sources:
mkdir -p $@
diff --git a/config.mk b/config.mk
index 0391284..45a4920 100644
--- a/config.mk
+++ b/config.mk
@@ -1,25 +1,10 @@
+# vis version
+VERSION = 0.1
+
# optional features
-HAVE_ACL=0
-HAVE_SELINUX=0
CONFIG_LUA=1
-
-# vis version
-RELEASE = HEAD
-# try to get a tag and hash first
-GITHASH = $(shell git log -1 --format='%h' 2>/dev/null)
-GITTAG = $(shell git describe --abbrev=0 --tags 2>/dev/null)
-ifneq ($(GITTAG),)
- # we have a tag and revcount from there
- GITREVCOUNT = $(shell git rev-list --count ${GITTAG}.. 2>/dev/null)
- VERSION = ${GITTAG}.r${GITREVCOUNT}.g${GITHASH}
-else ifneq ($(GITHASH),)
- # we have no tags in git, so just use revision count an hash for now
- GITREVCOUNT = $(shell git rev-list --count HEAD)
- VERSION = 0.r${GITREVCOUNT}.g${GITHASH}
-else
- # this is used when no git is available, e.g. for release tarball
- VERSION = ${RELEASE}
-endif
+CONFIG_ACL=0
+CONFIG_SELINUX=0
# Customize below to fit your system
@@ -27,10 +12,7 @@ PREFIX ?= /usr/local
MANPREFIX = ${PREFIX}/share/man
SHAREPREFIX = ${PREFIX}/share/vis
-ifeq (${CONFIG_LUA},1)
- CFLAGS_LUA = $(shell pkg-config --cflags lua5.2 2> /dev/null || echo "-I/usr/include/lua5.2")
- LDFLAGS_LUA = $(shell pkg-config --libs lua5.2 2> /dev/null || echo "-llua")
-endif
+LIBS = -lm -ldl -lc
CFLAGS_TERMKEY = $(shell pkg-config --cflags termkey 2> /dev/null || echo "")
LDFLAGS_TERMKEY = $(shell pkg-config --libs termkey 2> /dev/null || echo "-ltermkey")
@@ -38,20 +20,25 @@ LDFLAGS_TERMKEY = $(shell pkg-config --libs termkey 2> /dev/null || echo "-lterm
CFLAGS_CURSES = $(shell pkg-config --cflags ncursesw 2> /dev/null || echo "-I/usr/include/ncursesw")
LDFLAGS_CURSES = $(shell pkg-config --libs ncursesw 2> /dev/null || echo "-lncursesw")
-LIBS = -lm -ldl -lc
-OS = $(shell uname)
+ifeq (${CONFIG_LUA},1)
+ CFLAGS_LUA = $(shell pkg-config --cflags lua5.2 2> /dev/null || echo "-I/usr/include/lua5.2")
+ LDFLAGS_LUA = $(shell pkg-config --libs lua5.2 2> /dev/null || echo "-llua")
+endif
CFLAGS += -DCONFIG_LUA=${CONFIG_LUA}
+CFLAGS += -DCONFIG_SELINUX=${CONFIG_SELINUX}
+CFLAGS += -DCONFIG_ACL=${CONFIG_ACL}
+
+ifeq (${CONFIG_ACL},1)
+ LIBS += -lacl
+endif
+
+OS = $(shell uname)
ifeq (${OS},Linux)
- ifeq (${HAVE_SELINUX},1)
- CFLAGS += -DHAVE_SELINUX
+ ifeq (${CONFIG_SELINUX},1)
LIBS += -lselinux
endif
- ifeq (${HAVE_ACL},1)
- CFLAGS += -DHAVE_ACL
- LIBS += -lacl
- endif
else ifeq (${OS},Darwin)
CFLAGS += -D_DARWIN_C_SOURCE
else ifeq (${OS},OpenBSD)
diff --git a/text.c b/text.c
index 2de96b8..da14209 100644
--- a/text.c
+++ b/text.c
@@ -24,10 +24,10 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
-#ifdef HAVE_ACL
+#if CONFIG_ACL
#include <sys/acl.h>
#endif
-#ifdef HAVE_SELINUX
+#if CONFIG_SELINUX
#include <selinux/selinux.h>
#endif
@@ -786,7 +786,7 @@ time_t text_state(Text *txt) {
}
static bool preserve_acl(int src, int dest) {
-#ifdef HAVE_ACL
+#if CONFIG_ACL
acl_t acl = acl_get_fd(src);
if (!acl)
return errno == ENOTSUP ? true : false;
@@ -795,12 +795,12 @@ static bool preserve_acl(int src, int dest) {
return false;
}
acl_free(acl);
-#endif /* HAVE_ACL */
+#endif /* CONFIG_ACL */
return true;
}
static bool preserve_selinux_context(int src, int dest) {
-#ifdef HAVE_SELINUX
+#if CONFIG_SELINUX
char *context = NULL;
if (!is_selinux_enabled())
return true;
@@ -811,7 +811,7 @@ static bool preserve_selinux_context(int src, int dest) {
return false;
}
freecon(context);
-#endif /* HAVE_SELINUX */
+#endif /* CONFIG_SELINUX */
return true;
}