57 lines
1.4 KiB
Makefile
57 lines
1.4 KiB
Makefile
CFLAGS = -flto -Wall -Wextra -Werror -Wl,-z,now
|
|
CFLAGS_RELEASE = ${CFLAGS} -O3 -s -D_FORTIFY_SOURCE=2
|
|
CFLAGS_DEBUG = ${CFLAGS} -O0 -g -fsanitize=undefined
|
|
CFLAGS_STATIC = ${CFLAGS_RELEASE} -static-pie
|
|
LIBS = -lcrypt
|
|
CC = cc
|
|
|
|
PREFIX ?= /usr/local
|
|
BINDIR = ${PREFIX}/bin
|
|
MANDIR = ${PREFIX}/share/man
|
|
|
|
all: rdo
|
|
|
|
rdo: rdo.c
|
|
${CC} ${CFLAGS_RELEASE} rdo.c -o rdo ${LIBS}
|
|
|
|
static: rdo.c
|
|
${CC} ${CFLAGS_STATIC} rdo.c -o rdo ${LIBS}
|
|
|
|
debug: rdo.c
|
|
${CC} ${CFLAGS_DEBUG} rdo.c -o rdo ${LIBS}
|
|
|
|
install: all
|
|
mkdir -p ${DESTDIR}${BINDIR}
|
|
cp rdo ${DESTDIR}${BINDIR}/rdo
|
|
chmod 4755 ${DESTDIR}${BINDIR}/rdo
|
|
mkdir -p ${DESTDIR}${MANDIR}/man1
|
|
cp rdo.1 ${DESTDIR}${MANDIR}/man1/rdo.1
|
|
chmod 644 ${DESTDIR}${MANDIR}/man1/rdo.1
|
|
mkdir -p ${DESTDIR}${MANDIR}/man5
|
|
cp rdo.conf.5 ${DESTDIR}${MANDIR}/man5/rdo.conf.5
|
|
chmod 644 ${DESTDIR}${MANDIR}/man5/rdo.conf.5
|
|
mkdir -p ${DESTDIR}/etc
|
|
@if [ -f ${DESTDIR}/etc/rdo.conf ]; then \
|
|
echo "Skipping existing configuration file: ${DESTDIR}/etc/rdo.conf"; \
|
|
else \
|
|
cp rdo_sample.conf ${DESTDIR}/etc/rdo.conf; \
|
|
chmod 644 ${DESTDIR}/etc/rdo.conf; \
|
|
fi
|
|
|
|
|
|
uninstall:
|
|
rm -f ${DESTDIR}${BINDIR}/rdo
|
|
rm -f ${DESTDIR}${MANDIR}/man1/rdo.1
|
|
rm -f ${DESTDIR}${MANDIR}/man5/rdo.conf.5
|
|
|
|
clean:
|
|
rm rdo
|
|
|
|
bench-clean:
|
|
docker rmi -f rdo-benchmark
|
|
|
|
bench-build: bench-clean
|
|
docker buildx build -t rdo-benchmark -f benchmark/Dockerfile .
|
|
|
|
bench-run:
|
|
docker run --rm -t rdo-benchmark
|