X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=Makefile;h=b7eae33e8020ffc3cdb8aae9637bac7aa63ebf05;hb=15973d1f5225ee4fc0114d70a24a695486f482d4;hp=1fd76b9436b7d4fd7b2410c7036f8ba9c38e1c1f;hpb=4a2f8ac86e98961a622e9b4d6e671c135157630b;p=i3%2Fi3lock diff --git a/Makefile b/Makefile index 1fd76b9..b7eae33 100644 --- a/Makefile +++ b/Makefile @@ -1,51 +1,63 @@ -# slock - simple screen locker -# © 2006-2007 Anselm R. Garbe, Sander van Dijk -# © 2009 Michael Stapelberg - -include config.mk - -SRC = i3lock.c -OBJ = ${SRC:.c=.o} - -all: options i3lock - -options: - @echo i3lock build options: - @echo "CFLAGS = ${CFLAGS}" - @echo "LDFLAGS = ${LDFLAGS}" - @echo "CC = ${CC}" - -.c.o: - @echo CC $< - @${CC} -c ${CFLAGS} $< - -${OBJ}: config.mk - -i3lock: ${OBJ} - @echo CC -o $@ - @${CC} -o $@ ${OBJ} ${LDFLAGS} +TOPDIR=$(shell pwd) + +INSTALL=install +PREFIX=/usr +SYSCONFDIR=/etc +PKG_CONFIG=pkg-config + +# Check if pkg-config is installed, we need it for building CFLAGS/LIBS +ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1) +$(error "$(PKG_CONFIG) was not found") +endif + +CFLAGS += -std=c99 +CFLAGS += -pipe +CFLAGS += -Wall +CPPFLAGS += -D_GNU_SOURCE +CPPFLAGS += -DUSE_PAM +CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11) +LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11) +LIBS += -lpam +LIBS += -lev +LIBS += -lm + +FILES:=$(wildcard *.c) +FILES:=$(FILES:.c=.o) + +ifeq ($(wildcard .git),) + # not in git repository + VERSION := $(shell [ -f $(TOPDIR)/I3LOCK_VERSION ] && cat $(TOPDIR)/I3LOCK_VERSION | cut -d '-' -f 1) + I3LOCK_VERSION := '$(shell [ -f $(TOPDIR)/I3LOCK_VERSION ] && cat $(TOPDIR)/I3LOCK_VERSION)' +else + VERSION:=$(shell git describe --tags --abbrev=0) + I3LOCK_VERSION:="$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1))" +endif +CPPFLAGS += -DVERSION=\"${I3LOCK_VERSION}\" + +.PHONY: install clean uninstall + +all: i3lock + +i3lock: ${FILES} + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) clean: - @echo cleaning - @rm -f i3lock ${OBJ} i3lock-${VERSION}.tar.gz - -dist: clean - @echo creating dist tarball - @mkdir -p i3lock-${VERSION} - @cp -R LICENSE Makefile README config.mk i3lock.1 ${SRC} i3lock-${VERSION} - @tar -cf i3lock-${VERSION}.tar i3lock-${VERSION} - @gzip i3lock-${VERSION}.tar - @rm -rf i3lock-${VERSION} + rm -f i3lock ${FILES} i3lock-${VERSION}.tar.gz install: all - @echo installing executable file to $(DESTDIR)$(PREFIX)/bin $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin - $(INSTALL) -d $(MANDIR)/man1 + $(INSTALL) -d $(DESTDIR)$(SYSCONFDIR)/pam.d $(INSTALL) -m 755 i3lock $(DESTDIR)$(PREFIX)/bin/i3lock - $(INSTALL) -m 644 i3lock.1 $(MANDIR)/man1/i3lock.1 + $(INSTALL) -m 644 i3lock.pam $(DESTDIR)$(SYSCONFDIR)/pam.d/i3lock uninstall: - @echo removing executable file from $(DESTDIR)$(PREFIX)/bin - @rm -f $(DESTDIR)$(PREFIX)/bin/i3lock + rm -f $(DESTDIR)$(PREFIX)/bin/i3lock -.PHONY: all options clean dist install uninstall +dist: clean + [ ! -d i3lock-${VERSION} ] || rm -rf i3lock-${VERSION} + [ ! -e i3lock-${VERSION}.tar.bz2 ] || rm i3lock-${VERSION}.tar.bz2 + mkdir i3lock-${VERSION} + cp *.c *.h i3lock.1 i3lock.pam Makefile LICENSE README.md CHANGELOG i3lock-${VERSION} + sed -e 's/^I3LOCK_VERSION:=\(.*\)/I3LOCK_VERSION:=$(shell /bin/echo '${I3LOCK_VERSION}' | sed 's/\\/\\\\/g')/g;s/^VERSION:=\(.*\)/VERSION:=${VERSION}/g' Makefile > i3lock-${VERSION}/Makefile + tar cfj i3lock-${VERSION}.tar.bz2 i3lock-${VERSION} + rm -rf i3lock-${VERSION}