Makefile improvement using LLM
This commit is contained in:
113
Makefile
113
Makefile
@@ -1,54 +1,77 @@
|
|||||||
CFLAGS=-Wall -Werror -pthread -O3 -g0
|
# Directories
|
||||||
CFLAGS += -DGETRANDOM -DARG_REPLACE_GETOPT=0
|
SRC_DIR := src
|
||||||
LDFLAGS=-lm -s
|
OBJ_DIR := objs
|
||||||
|
|
||||||
|
# Common flags
|
||||||
|
CFLAGS_COMMON := -Wall -Werror -pthread
|
||||||
|
CFLAGS_RELEASE := -O3 -g0
|
||||||
|
CFLAGS_DEBUG := -O0 -g
|
||||||
|
DEFINES := -DGETRANDOM -DARG_REPLACE_GETOPT=0
|
||||||
|
|
||||||
|
LDFLAGS_COMMON := -lm
|
||||||
|
LDFLAGS_RELEASE := -s
|
||||||
|
|
||||||
|
# Default build flags (can be overridden from the command line)
|
||||||
|
CFLAGS ?= $(CFLAGS_COMMON) $(CFLAGS_RELEASE) $(DEFINES)
|
||||||
|
LDFLAGS ?= $(LDFLAGS_COMMON) $(LDFLAGS_RELEASE)
|
||||||
|
|
||||||
|
# Source lists
|
||||||
|
LIB_SOURCES := \
|
||||||
|
argtable3.c \
|
||||||
|
base64.c \
|
||||||
|
binhex.c \
|
||||||
|
curve25519.c \
|
||||||
|
inexact.c \
|
||||||
|
norx_inexact.c \
|
||||||
|
sha3.c \
|
||||||
|
tests.c \
|
||||||
|
readpassphrase.c \
|
||||||
|
randombytes.c \
|
||||||
|
chacha20_drng.c \
|
||||||
|
blake2.c
|
||||||
|
|
||||||
|
ARGON2_SOURCES := \
|
||||||
|
argon2.c \
|
||||||
|
argon2-core.c \
|
||||||
|
argon2-thread.c \
|
||||||
|
argon2-encoding.c \
|
||||||
|
argon2-impl-select.c \
|
||||||
|
argon2-arch.c
|
||||||
|
|
||||||
|
MAIN_SOURCE := main.c
|
||||||
|
|
||||||
|
# Derived paths
|
||||||
|
LIB_SRCS := $(addprefix $(SRC_DIR)/,$(LIB_SOURCES))
|
||||||
|
LIB_OBJS := $(addprefix $(OBJ_DIR)/,$(LIB_SOURCES:.c=.o))
|
||||||
|
ARGON2_SRCS := $(addprefix $(SRC_DIR)/,$(ARGON2_SOURCES))
|
||||||
|
MAIN_SRC := $(addprefix $(SRC_DIR)/,$(MAIN_SOURCE))
|
||||||
|
|
||||||
|
# Phony targets
|
||||||
|
.PHONY: all default release debug clean
|
||||||
|
|
||||||
|
# Default target
|
||||||
|
all: inexact
|
||||||
default: inexact
|
default: inexact
|
||||||
|
release: inexact
|
||||||
|
|
||||||
debug: CFLAGS=-Wall -Werror -pthread -O0 -g
|
# Debug build: override flags for this target only
|
||||||
debug: CFLAGS += -DGETRANDOM -DARG_REPLACE_GETOPT=0
|
debug: CFLAGS := $(CFLAGS_COMMON) $(CFLAGS_DEBUG) $(DEFINES)
|
||||||
debug: LDFLAGS=-lm
|
debug: LDFLAGS := $(LDFLAGS_COMMON)
|
||||||
debug: inexact
|
debug: inexact
|
||||||
|
|
||||||
argtable3.o: src/argtable3.c
|
# Link final binary
|
||||||
mkdir -p objs
|
inexact: $(LIB_OBJS) $(ARGON2_SRCS) $(MAIN_SRC)
|
||||||
$(CC) $(CFLAGS) -c src/argtable3.c -o objs/argtable3.o
|
$(CC) $(CFLAGS) $(ARGON2_SRCS) $(MAIN_SRC) $(LIB_OBJS) -o $@ $(LDFLAGS)
|
||||||
|
|
||||||
base64.o: src/base64.c
|
# Ensure object directory exists
|
||||||
$(CC) $(CFLAGS) -c src/base64.c -o objs/base64.o
|
$(OBJ_DIR):
|
||||||
|
mkdir -p $(OBJ_DIR)
|
||||||
|
|
||||||
binhex.o: src/binhex.c
|
# Generic rule to build objects from src/*.c into objs/*.o
|
||||||
$(CC) $(CFLAGS) -c src/binhex.c -o objs/binhex.o
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
|
||||||
|
$(CC) $(CFLAGS) -c $< -o $@
|
||||||
curve25519.o: src/curve25519.c
|
|
||||||
$(CC) $(CFLAGS) -c src/curve25519.c -o objs/curve25519.o
|
|
||||||
|
|
||||||
inexact.o: src/inexact.c
|
|
||||||
$(CC) $(CFLAGS) -c src/inexact.c -o objs/inexact.o
|
|
||||||
|
|
||||||
norx_inexact.o: src/norx_inexact.c
|
|
||||||
$(CC) $(CFLAGS) -c src/norx_inexact.c -o objs/norx_inexact.o
|
|
||||||
|
|
||||||
sha3.o: src/sha3.c
|
|
||||||
$(CC) $(CFLAGS) -c src/sha3.c -o objs/sha3.o
|
|
||||||
|
|
||||||
tests.o: src/tests.c
|
|
||||||
$(CC) $(CFLAGS) -c src/tests.c -o objs/tests.o
|
|
||||||
|
|
||||||
readpassphrase.o: src/readpassphrase.c
|
|
||||||
$(CC) $(CFLAGS) -c src/readpassphrase.c -o objs/readpassphrase.o
|
|
||||||
|
|
||||||
randombytes.o: src/randombytes.c
|
|
||||||
$(CC) $(CFLAGS) -c src/randombytes.c -o objs/randombytes.o
|
|
||||||
|
|
||||||
chacha20_drng.o: src/chacha20_drng.c
|
|
||||||
$(CC) $(CFLAGS) -c src/chacha20_drng.c -o objs/chacha20_drng.o
|
|
||||||
|
|
||||||
blake2.o: src/blake2.c
|
|
||||||
$(CC) $(CFLAGS) -c src/blake2.c -o objs/blake2.o
|
|
||||||
|
|
||||||
inexact: src/main.c argtable3.o base64.o binhex.o curve25519.o inexact.o norx_inexact.o sha3.o tests.o readpassphrase.o chacha20_drng.o randombytes.o blake2.o
|
|
||||||
$(CC) $(CFLAGS) src/argon2.c src/argon2-core.c src/argon2-thread.c src/argon2-encoding.c src/argon2-impl-select.c src/argon2-arch.c src/main.c objs/argtable3.o objs/base64.o objs/binhex.o objs/curve25519.o objs/inexact.o objs/norx_inexact.o objs/sha3.o objs/tests.o objs/readpassphrase.o objs/randombytes.o objs/chacha20_drng.o objs/blake2.o -o inexact $(LDFLAGS)
|
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
clean:
|
clean:
|
||||||
-rm objs/*.o
|
-$(RM) $(LIB_OBJS)
|
||||||
-rm -f inexact inexact.exe
|
-$(RM) inexact inexact.exe
|
||||||
|
|||||||
Reference in New Issue
Block a user