Newer
Older
#
# Argon2 source code package
#
# This work is licensed under a Creative Commons CC0 1.0 License/Waiver.
#
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
#
RUN = argon2
BENCH = bench
GENKAT = genkat
SRC = src/argon2.c src/core.c src/blake2/blake2b.c src/thread.c src/encoding.c
SRC_BENCH = src/bench.c
SRC_GENKAT = src/genkat.c
CFLAGS = -std=c89 -pthread -O3 -Wall -g
BUILD_PATH := $(shell pwd)
KERNEL_NAME := $(shell uname -s)
ifeq ($(KERNEL_NAME), NetBSD)
LIB_EXT := so
LIB_CFLAGS := -shared -fPIC
endif
LIB_EXT := dylib
LIB_CFLAGS := -dynamiclib -install_name @rpath/lib$(LIB_NAME).$(LIB_EXT)
endif
ifeq ($(findstring MINGW, $(KERNEL_NAME)), MINGW)
LIB_EXT := dll
LIB_CFLAGS := -shared -Wl,--out-implib,lib$(LIB_NAME).$(LIB_EXT).a
endif
ifeq ($(KERNEL_NAME), $(filter $(KERNEL_NAME),OpenBSD FreeBSD))
LIB_EXT := so
LIB_CFLAGS := -shared -fPIC
endif
LIB_SH := lib$(LIB_NAME).$(LIB_EXT)
LIB_ST := lib$(LIB_NAME).a
$(CC) $(CFLAGS) $^ -Isrc -o $@
$(LIB_SH): $(SRC)
$(CC) $(CFLAGS) $(LIB_CFLAGS) $^ -Isrc -o $@
$(LIB_ST): $(OBJ)
ar rcs $@ $^
rm -f $(RUN) $(BENCH) $(GENKAT)
rm -f $(LIB_SH) $(LIB_ST) kat-argon2*
tar -c --exclude='.??*' -z -f $(DIST)-`date "+%Y%m%d"`.tgz $(DIST)/*
clang-format -style="{BasedOnStyle: llvm, IndentWidth: 4}" -i src/*.c src/*.h src/blake2/*.c src/blake2/*.h