From b3ed399f1cce511c5a21b08d2b0fffeb615a4333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Tue, 29 Dec 2015 11:37:16 +0100 Subject: Clean up build system --- Makefile | 25 ++++++++++++++++--------- config.mk | 51 +++++++++++++++++++-------------------------------- text.c | 12 ++++++------ 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 #include #include -#ifdef HAVE_ACL +#if CONFIG_ACL #include #endif -#ifdef HAVE_SELINUX +#if CONFIG_SELINUX #include #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; } -- cgit v1.2.3