summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compile_flags.txt5
-rw-r--r--makefile68
2 files changed, 59 insertions, 14 deletions
diff --git a/compile_flags.txt b/compile_flags.txt
index 93961f5..c7ed1d1 100644
--- a/compile_flags.txt
+++ b/compile_flags.txt
@@ -1,5 +1,6 @@
1-Wall 1-Wall
2-Werror 2-Werror
3-pedantic
3-Wno-pointer-sign 4-Wno-pointer-sign
4-std=c17 5-std=c11
5-I../lua-bcrypt/src 6-Ilibbcrypt/lua-bcrypt-2.3-1/src
diff --git a/makefile b/makefile
index d842299..ea514c2 100644
--- a/makefile
+++ b/makefile
@@ -1,22 +1,66 @@
1all: bcrypt-test 1BCRYPT_VERSION=2.3-1
2 2
3# git clone https://github.com/mikejsavage/lua-bcrypt.git 3BCRYPT_DIR=libbcrypt
4LUA_BCRYPT_PATH=../lua-bcrypt/src
5 4
6CFLAGS=-Wall -Werror -Wno-pointer-sign -std=c17 -O2 -I$(LUA_BCRYPT_PATH) 5BCRYPT_SRC_DIR=$(BCRYPT_DIR)/lua-bcrypt-$(BCRYPT_VERSION)/src
6BCRYPT_OBJ_DIR=$(BCRYPT_DIR)/obj
7BCRYPT_LIB_DIR=$(BCRYPT_DIR)/lib
7 8
8bcrypt-test: bcrypt-test.o bcrypt-lib.a 9BCRYPT_ARCHIVE=$(BCRYPT_DIR)/lua-bcrypt.tar.gz
9 cc -o $@ bcrypt-test.o bcrypt-lib.a
10 10
11bcrypt-lib.a: bcrypt.o blowfish.o ggentropy.o safebfuns.o 11BCRYPT_SOURCES= \
12 $(BCRYPT_SRC_DIR)/bcrypt.c \
13 $(BCRYPT_SRC_DIR)/blowfish.c \
14 $(BCRYPT_SRC_DIR)/ggentropy.c \
15 $(BCRYPT_SRC_DIR)/safebfuns.c
16
17BCRYPT_OBJS=$(BCRYPT_SOURCES:$(BCRYPT_SRC_DIR)/%.c=$(BCRYPT_OBJ_DIR)/%.o)
18
19BCRYPT_LIB=$(BCRYPT_LIB_DIR)/libbcrypt.a
20
21BCRYPT_UNPACKED=$(BCRYPT_DIR)/.unpacked
22
23CFLAGS=-Wall -Werror -pedantic -Wno-pointer-sign -std=c11 -O2 -I$(BCRYPT_SRC_DIR)
24
25all: bin/bcrypt-test
26
27# === App ===
28
29bin/bcrypt-test: obj/bcrypt-test.o $(BCRYPT_LIB) | bin
30 cc -o $@ obj/bcrypt-test.o $(BCRYPT_LIB)
31
32obj/%.o: src/%.c $(BCRYPT_UNPACKED) | obj
33 cc $(CFLAGS) -c $< -o $@
34
35obj bin:
36 mkdir -p $@
37
38# === libbcrypt ===
39
40$(BCRYPT_ARCHIVE): | $(BCRYPT_DIR)
41 curl -f -L -o $@ https://github.com/mikejsavage/lua-bcrypt/archive/refs/tags/v$(BCRYPT_VERSION).tar.gz
42
43$(BCRYPT_UNPACKED): $(BCRYPT_ARCHIVE)
44 tar -xzf $< -C $(BCRYPT_DIR)
45 touch $@
46
47download: $(BCRYPT_UNPACKED)
48
49# The extracted sources are generated as a side effect of unpacking.
50$(BCRYPT_SOURCES): $(BCRYPT_UNPACKED)
51
52$(BCRYPT_OBJ_DIR)/%.o: $(BCRYPT_SRC_DIR)/%.c | $(BCRYPT_OBJ_DIR)
53 cc $(CFLAGS) -c $< -o $@
54
55$(BCRYPT_LIB): $(BCRYPT_OBJS) | $(BCRYPT_LIB_DIR)
12 ar -crs $@ $^ 56 ar -crs $@ $^
13 57
14%.o: %.c 58$(BCRYPT_DIR) $(BCRYPT_LIB_DIR) $(BCRYPT_OBJ_DIR):
15 cc $(CFLAGS) -o $@ -c $< 59 mkdir -p $@
16 60
17%.o: $(LUA_BCRYPT_PATH)/%.c 61# === clean ===
18 cc $(CFLAGS) -o $@ -c $<
19 62
20.PHONY: clean 63.PHONY: clean
21clean: 64clean:
22 rm -f bcrypt-test *.a *.o 65 rm -rf bin obj $(BCRYPT_DIR)
66