From f37858eb4c448eef9c6fe05d2b56856940a7d6ad Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sat, 11 Jul 2026 00:15:07 +0200 Subject: Buildsystem überarbeitet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compile_flags.txt | 5 ++-- makefile | 68 +++++++++++++++++++++++++++++++++++++++++++++---------- 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 @@ -Wall -Werror +-pedantic -Wno-pointer-sign --std=c17 --I../lua-bcrypt/src +-std=c11 +-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 @@ -all: bcrypt-test +BCRYPT_VERSION=2.3-1 -# git clone https://github.com/mikejsavage/lua-bcrypt.git -LUA_BCRYPT_PATH=../lua-bcrypt/src +BCRYPT_DIR=libbcrypt -CFLAGS=-Wall -Werror -Wno-pointer-sign -std=c17 -O2 -I$(LUA_BCRYPT_PATH) +BCRYPT_SRC_DIR=$(BCRYPT_DIR)/lua-bcrypt-$(BCRYPT_VERSION)/src +BCRYPT_OBJ_DIR=$(BCRYPT_DIR)/obj +BCRYPT_LIB_DIR=$(BCRYPT_DIR)/lib -bcrypt-test: bcrypt-test.o bcrypt-lib.a - cc -o $@ bcrypt-test.o bcrypt-lib.a +BCRYPT_ARCHIVE=$(BCRYPT_DIR)/lua-bcrypt.tar.gz -bcrypt-lib.a: bcrypt.o blowfish.o ggentropy.o safebfuns.o +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_ARCHIVE): | $(BCRYPT_DIR) + curl -f -L -o $@ https://github.com/mikejsavage/lua-bcrypt/archive/refs/tags/v$(BCRYPT_VERSION).tar.gz + +$(BCRYPT_UNPACKED): $(BCRYPT_ARCHIVE) + 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 $@ $^ -%.o: %.c - cc $(CFLAGS) -o $@ -c $< +$(BCRYPT_DIR) $(BCRYPT_LIB_DIR) $(BCRYPT_OBJ_DIR): + mkdir -p $@ -%.o: $(LUA_BCRYPT_PATH)/%.c - cc $(CFLAGS) -o $@ -c $< +# === clean === .PHONY: clean clean: - rm -f bcrypt-test *.a *.o + rm -rf bin obj $(BCRYPT_DIR) + -- cgit v1.3