blob: d893a1d6610fa23a6404f729ba9e171897058717 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
BCRYPT_VERSION=2.3-1
BCRYPT_DIR=libbcrypt
BCRYPT_SRC_DIR=$(BCRYPT_DIR)/lua-bcrypt-$(BCRYPT_VERSION)/src
BCRYPT_OBJ_DIR=$(BCRYPT_DIR)/obj
BCRYPT_LIB_DIR=$(BCRYPT_DIR)/lib
BCRYPT_SOURCES= \
$(BCRYPT_SRC_DIR)/bcrypt.c \
$(BCRYPT_SRC_DIR)/blowfish.c \
$(BCRYPT_SRC_DIR)/ggentropy.c \
$(BCRYPT_SRC_DIR)/safebfuns.c
BCRYPT_OBJS=$(BCRYPT_SOURCES:$(BCRYPT_SRC_DIR)/%.c=$(BCRYPT_OBJ_DIR)/%.o)
BCRYPT_LIB=$(BCRYPT_LIB_DIR)/libbcrypt.a
BCRYPT_UNPACKED=$(BCRYPT_DIR)/.unpacked
CFLAGS=-Wall -Werror -pedantic -Wno-pointer-sign -std=c11 -O2 -I$(BCRYPT_SRC_DIR)
all: bin/bcrypt-test
# === App ===
bin/bcrypt-test: obj/bcrypt-test.o $(BCRYPT_LIB) | bin
cc -o $@ obj/bcrypt-test.o $(BCRYPT_LIB)
obj/%.o: src/%.c $(BCRYPT_UNPACKED) | obj
cc $(CFLAGS) -c $< -o $@
obj bin:
mkdir -p $@
# === libbcrypt ===
$(BCRYPT_UNPACKED): | $(BCRYPT_DIR)
curl -f -L -o - https://github.com/mikejsavage/lua-bcrypt/archive/refs/tags/v$(BCRYPT_VERSION).tar.gz | tar -xzf - -C $(BCRYPT_DIR)
touch $@
download: $(BCRYPT_UNPACKED)
# The extracted sources are generated as a side effect of unpacking.
$(BCRYPT_SOURCES): $(BCRYPT_UNPACKED)
$(BCRYPT_OBJ_DIR)/%.o: $(BCRYPT_SRC_DIR)/%.c | $(BCRYPT_OBJ_DIR)
cc $(CFLAGS) -c $< -o $@
$(BCRYPT_LIB): $(BCRYPT_OBJS) | $(BCRYPT_LIB_DIR)
ar -crs $@ $^
$(BCRYPT_DIR) $(BCRYPT_LIB_DIR) $(BCRYPT_OBJ_DIR):
mkdir -p $@
# === clean ===
.PHONY: clean
clean:
rm -rf bin obj $(BCRYPT_DIR)
|