From 63d650b6c8c7224548c0a00fafb9fe0e45d945ad Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:20:06 +0100 Subject: [PATCH] Fix #162: Add distro-agnostic mbedtls detection (#169) - Use pkg-config to dynamically detect mbedtls variants (mbedtls3.x, mbedtls) - Fallback to /usr/local if pkg-config unavailable - Tested on Fedora 41 (mbedtls3.6), Arch Linux (mbedtls 3.6.5), Debian Bookworm, and Slackware - Eliminates need for hardcoded version-specific paths Co-authored-by: Levi Neely --- Makefile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3c9cbd8..39d6026 100644 --- a/Makefile +++ b/Makefile @@ -6,12 +6,20 @@ DIST_CFLAGS := $(CFLAGS) DIST_CXXFLAGS := $(CXXFLAGS) COMMONFLAGS = -fsanitize=address -CFLAGS = -fPIC $(COMMONFLAGS) -I./pclsync -I/usr/include +CFLAGS = -fPIC $(COMMONFLAGS) -I./pclsync -I/usr/include $(shell pkg-config --cflags $$(pkg-config --list-all | grep -o 'mbedtls[0-9.]*\s' | head -1) 2>/dev/null || pkg-config --cflags mbedtls 2>/dev/null || echo "-I/usr/local/include") ifneq (,$(filter clang%,$(CC))) CFLAGS += -Wthread-safety endif CXXFLAGS = $(CFLAGS) -LIBLDFLAGS = $(COMMONFLAGS) -lreadline -lpthread -ludev -lsqlite3 -lz -lmbedtls -lmbedx509 -lmbedcrypto +LIBLDFLAGS = $(COMMONFLAGS) -lreadline -lpthread -ludev -lsqlite3 -lz $(shell \ + MBEDTLS_PKG=$$(pkg-config --list-all 2>/dev/null | grep -o 'mbedtls[0-9.]*\s' | head -1 | tr -d ' '); \ + if [ -n "$$MBEDTLS_PKG" ]; then \ + MBEDX509=$$(echo $$MBEDTLS_PKG | sed 's/mbedtls/mbedx509/'); \ + MBEDCRYPTO=$$(echo $$MBEDTLS_PKG | sed 's/mbedtls/mbedcrypto/'); \ + pkg-config --libs $$MBEDTLS_PKG $$MBEDX509 $$MBEDCRYPTO 2>/dev/null; \ + else \ + pkg-config --libs mbedtls mbedx509 mbedcrypto 2>/dev/null || echo "-L/usr/local/lib -lmbedtls -lmbedx509 -lmbedcrypto"; \ + fi) EXECLDFLAGS = $(COMMONFLAGS) -lboost_program_options -lfuse SCAN := 0