Files
slock/Makefile
T

91 lines
2.0 KiB
Makefile

UNAME_M := $(shell uname -m)
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
UNAME_E := $(shell [ $$(printf '\01\00' | od -An -tu2) -eq 1 ] && \
echo "little" || echo "big")
ifeq ($(UNAME_E),little)
ENDIANESS := LITTLE_ENDIAN
else ifeq ($(UNAME_E),little)
ENDIANESS := BIG_ENDIAN
endif
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
OS := OS_MACOS
else ifeq ($(UNAME_S),Linux)
OS := OS_LINUX
endif
CC = gcc
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 -rf $(EXE) $(EXE).dSYM