diff options
Diffstat (limited to 'makefile')
| -rw-r--r-- | makefile | 68 |
1 files changed, 56 insertions, 12 deletions
| @@ -1,22 +1,66 @@ | |||
| 1 | all: bcrypt-test | 1 | BCRYPT_VERSION=2.3-1 |
| 2 | 2 | ||
| 3 | # git clone https://github.com/mikejsavage/lua-bcrypt.git | 3 | BCRYPT_DIR=libbcrypt |
| 4 | LUA_BCRYPT_PATH=../lua-bcrypt/src | ||
| 5 | 4 | ||
| 6 | CFLAGS=-Wall -Werror -Wno-pointer-sign -std=c17 -O2 -I$(LUA_BCRYPT_PATH) | 5 | BCRYPT_SRC_DIR=$(BCRYPT_DIR)/lua-bcrypt-$(BCRYPT_VERSION)/src |
| 6 | BCRYPT_OBJ_DIR=$(BCRYPT_DIR)/obj | ||
| 7 | BCRYPT_LIB_DIR=$(BCRYPT_DIR)/lib | ||
| 7 | 8 | ||
| 8 | bcrypt-test: bcrypt-test.o bcrypt-lib.a | 9 | BCRYPT_ARCHIVE=$(BCRYPT_DIR)/lua-bcrypt.tar.gz |
| 9 | cc -o $@ bcrypt-test.o bcrypt-lib.a | ||
| 10 | 10 | ||
| 11 | bcrypt-lib.a: bcrypt.o blowfish.o ggentropy.o safebfuns.o | 11 | BCRYPT_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 | |||
| 17 | BCRYPT_OBJS=$(BCRYPT_SOURCES:$(BCRYPT_SRC_DIR)/%.c=$(BCRYPT_OBJ_DIR)/%.o) | ||
| 18 | |||
| 19 | BCRYPT_LIB=$(BCRYPT_LIB_DIR)/libbcrypt.a | ||
| 20 | |||
| 21 | BCRYPT_UNPACKED=$(BCRYPT_DIR)/.unpacked | ||
| 22 | |||
| 23 | CFLAGS=-Wall -Werror -pedantic -Wno-pointer-sign -std=c11 -O2 -I$(BCRYPT_SRC_DIR) | ||
| 24 | |||
| 25 | all: bin/bcrypt-test | ||
| 26 | |||
| 27 | # === App === | ||
| 28 | |||
| 29 | bin/bcrypt-test: obj/bcrypt-test.o $(BCRYPT_LIB) | bin | ||
| 30 | cc -o $@ obj/bcrypt-test.o $(BCRYPT_LIB) | ||
| 31 | |||
| 32 | obj/%.o: src/%.c $(BCRYPT_UNPACKED) | obj | ||
| 33 | cc $(CFLAGS) -c $< -o $@ | ||
| 34 | |||
| 35 | obj 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 | |||
| 47 | download: $(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 |
| 21 | clean: | 64 | clean: |
| 22 | rm -f bcrypt-test *.a *.o | 65 | rm -rf bin obj $(BCRYPT_DIR) |
| 66 | |||
