Update README and Makefile.
This commit is contained in:
@@ -1,46 +1,90 @@
|
||||
# slock - simple screen locker
|
||||
# See LICENSE file for copyright and license details.
|
||||
UNAME_M := $(shell uname -m)
|
||||
|
||||
include config.mk
|
||||
ifeq ($(UNAME_M),x86_64)
|
||||
ARCH := ARCHITECTURE_X64
|
||||
else ifneq ($(filter $(UNAME_M),i686,i386),)
|
||||
ARCH := ARCHITECTURE_X86
|
||||
else ifneq ($(filter $(UNAME_M),aarch64 arm64),)
|
||||
ARCH := ARCHITECTURE_ARM64
|
||||
else ifneq ($(filter $(UNAME_M),armv7l armv6l),)
|
||||
ARCH := ARCHITECTURE_ARM32
|
||||
endif
|
||||
|
||||
SRC = slock.c ${COMPATSRC}
|
||||
OBJ = ${SRC:.c=.o}
|
||||
UNAME_E := $(shell [ $$(printf '\01\00' | od -An -tu2) -eq 1 ] && \
|
||||
echo "little" || echo "big")
|
||||
|
||||
all: slock
|
||||
ifeq ($(UNAME_E),little)
|
||||
ENDIANESS := LITTLE_ENDIAN
|
||||
else ifeq ($(UNAME_E),little)
|
||||
ENDIANESS := BIG_ENDIAN
|
||||
endif
|
||||
|
||||
.c.o:
|
||||
${CC} -c ${CFLAGS} $<
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
${OBJ}: config.h config.mk arg.h util.h
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
OS := OS_MACOS
|
||||
else ifeq ($(UNAME_S),Linux)
|
||||
OS := OS_LINUX
|
||||
endif
|
||||
|
||||
config.h:
|
||||
cp config.def.h $@
|
||||
CC = gcc
|
||||
|
||||
slock: ${OBJ}
|
||||
${CC} -o $@ ${OBJ} ${LDFLAGS}
|
||||
ifeq ($(CC),clang)
|
||||
COMP := COMPILER_CLANG
|
||||
else ifeq ($(CC),gcc)
|
||||
COMP := COMPILER_GCC
|
||||
endif
|
||||
|
||||
# -ansi -pedantic -pedantic-errors
|
||||
CFLAGS = -Wno-long-long -Wall -Wextra \
|
||||
-Wincompatible-pointer-types \
|
||||
-Wint-conversion -Wformat \
|
||||
-Wno-strict-prototypes -Wno-missing-field-initializers \
|
||||
-Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \
|
||||
-Wno-unused-but-set-variable \
|
||||
-fno-show-column
|
||||
|
||||
ifeq ($(COMP),COMPILER_CLANG)
|
||||
CFLAGS += -fno-caret-diagnostics
|
||||
else ifeq ($(COMP),COMPILER_GCC)
|
||||
CFLAGS += -fno-diagnostics-show-caret
|
||||
endif
|
||||
|
||||
ifeq ($(OS),OS_MACOS)
|
||||
FLAGS = -glldb
|
||||
INCLUDE =
|
||||
LIBS =
|
||||
FRAMEWORKS =
|
||||
else ifeq ($(OS),OS_LINUX)
|
||||
FLAGS = -O3 # -ggdb -DDEBUG=1 -DINTERNAL=1
|
||||
INCLUDE = -I/usr/include -I/usr/X11R6/include
|
||||
LIBS = -lc -lcrypt -lX11 -lXext -lXrandr
|
||||
FRAMEWORKS =
|
||||
endif
|
||||
|
||||
EXE = slock
|
||||
VERSION = "\"1.7\""
|
||||
|
||||
default: $(EXE)
|
||||
|
||||
$(EXE): $(EXE).c explicit_bzero.c
|
||||
$(CC) $(CFLAGS) $(FLAGS) \
|
||||
-D$(ARCH)=1 -D$(ENDIANESS)=1 -D$(OS)=1 -D$(COMP)=1 \
|
||||
-DVERSION=$(VERSION) -D_DEFAULT_SOURCE -DHAVE_SHADOW_H \
|
||||
$(INCLUDE) $^ $(LIBS) \
|
||||
$(FRAMEWORKS) -o $@ $(ifneq $(filter $(OS), OS_MACOS OS_LINUX), \
|
||||
/link /FORCE:MULTIPLE)
|
||||
|
||||
watch:
|
||||
@ while true; do \
|
||||
inotifywait -q -q -e 'modify' . && clear && make -B; \
|
||||
done
|
||||
|
||||
perf:
|
||||
perf record --call-graph dwarf ./$(EXE)
|
||||
|
||||
run:
|
||||
@ clear; ./$(EXE)
|
||||
|
||||
clean:
|
||||
rm -f slock ${OBJ} slock-${VERSION}.tar.gz
|
||||
|
||||
dist: clean
|
||||
mkdir -p slock-${VERSION}
|
||||
cp -R LICENSE Makefile README slock.1 config.mk \
|
||||
${SRC} config.def.h arg.h util.h slock-${VERSION}
|
||||
tar -cf slock-${VERSION}.tar slock-${VERSION}
|
||||
gzip slock-${VERSION}.tar
|
||||
rm -rf slock-${VERSION}
|
||||
|
||||
install: all
|
||||
mkdir -p ${DESTDIR}${PREFIX}/bin
|
||||
cp -f slock ${DESTDIR}${PREFIX}/bin
|
||||
chmod 755 ${DESTDIR}${PREFIX}/bin/slock
|
||||
chmod u+s ${DESTDIR}${PREFIX}/bin/slock
|
||||
mkdir -p ${DESTDIR}${MANPREFIX}/man1
|
||||
sed "s/VERSION/${VERSION}/g" <slock.1 >${DESTDIR}${MANPREFIX}/man1/slock.1
|
||||
chmod 644 ${DESTDIR}${MANPREFIX}/man1/slock.1
|
||||
|
||||
uninstall:
|
||||
rm -f ${DESTDIR}${PREFIX}/bin/slock
|
||||
rm -f ${DESTDIR}${MANPREFIX}/man1/slock.1
|
||||
|
||||
.PHONY: all clean dist install uninstall
|
||||
@ rm -rf $(EXE) $(EXE).dSYM
|
||||
|
||||
Reference in New Issue
Block a user