62 lines
1.4 KiB
Makefile
62 lines
1.4 KiB
Makefile
|
PREFIX ?= /usr/local
|
||
|
WFLAGS ?= -Wall -Wextra -Wmissing-prototypes -Wdiv-by-zero -Wbad-function-cast -Wcast-align -Wcast-qual -Wfloat-equal -Wmissing-declarations -Wnested-externs -Wno-unknown-pragmas -Wpointer-arith -Wredundant-decls -Wstrict-prototypes -Wswitch-enum -Wno-type-limits
|
||
|
CFLAGS ?= -Os -mtune=native -fno-exceptions $(WFLAGS)
|
||
|
CFLAGS += -I.
|
||
|
OBJ = hydrogen.o
|
||
|
AR ?= ar
|
||
|
RANLIB ?= ranlib
|
||
|
|
||
|
SRC = \
|
||
|
hydrogen.c \
|
||
|
hydrogen.h \
|
||
|
impl/common.h \
|
||
|
impl/core.h \
|
||
|
impl/gimli-core.h \
|
||
|
impl/hash.h \
|
||
|
impl/hydrogen_p.h \
|
||
|
impl/kdf.h \
|
||
|
impl/kx.h \
|
||
|
impl/pwhash.h \
|
||
|
impl/random.h \
|
||
|
impl/secretbox.h \
|
||
|
impl/sign.h \
|
||
|
impl/x25519.h
|
||
|
|
||
|
all: lib test
|
||
|
|
||
|
lib: libhydrogen.a
|
||
|
|
||
|
install: lib
|
||
|
mkdir -p $(PREFIX)/lib
|
||
|
install -o 0 -g 0 -m 0755 libhydrogen.a $(PREFIX)/lib 2> /dev/null || install -m 0755 libhydrogen.a $(PREFIX)/lib
|
||
|
mkdir -p $(PREFIX)/include
|
||
|
install -o 0 -g 0 -m 0644 hydrogen.h $(PREFIX)/include 2> /dev/null || install -m 0644 hydrogen.h $(PREFIX)/include
|
||
|
ldconfig 2> /dev/null || true
|
||
|
|
||
|
uninstall:
|
||
|
rm -f $(PREFIX)/lib/libhydrogen.a
|
||
|
rm -f $(PREFIX)/include/hydrogen.h
|
||
|
|
||
|
test: tests/tests
|
||
|
rm -f tests/tests.done
|
||
|
tests/tests && touch tests/tests.done
|
||
|
|
||
|
tests/tests: $(SRC) tests/tests.c
|
||
|
$(CC) $(CFLAGS) -O3 -o tests/tests hydrogen.c tests/tests.c
|
||
|
|
||
|
$(OBJ): $(SRC)
|
||
|
|
||
|
libhydrogen.a: $(OBJ)
|
||
|
$(AR) -r $@ $^
|
||
|
$(RANLIB) $@
|
||
|
|
||
|
.PHONY: clean
|
||
|
|
||
|
clean:
|
||
|
rm -f libhydrogen.a $(OBJ)
|
||
|
rm -f tests/tests tests/*.done
|
||
|
|
||
|
check: test
|
||
|
|
||
|
distclean: clean
|