From 2ba9f75e699d44b0c88b454a516df67d1bc90f09 Mon Sep 17 00:00:00 2001 From: darshankabariya Date: Mon, 2 Feb 2026 01:33:56 +0530 Subject: [PATCH] ci improvement - 2 --- Makefile | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index f5e02ecf4..c0ed8a3e2 100644 --- a/Makefile +++ b/Makefile @@ -168,20 +168,32 @@ ifneq ($(LIBBACKTRACE_PATH),) endif # Get nat-traversal path from nimble for building native libs +# Note: nimble sync already builds these during package setup, so we only need to +# locate the built libraries for linking. If libs are missing, rebuild them. nat-libs: - @NAT_PATH=$$(nimble path nat_traversal 2>/dev/null); \ - if [ -n "$$NAT_PATH" ]; then \ - echo "Building miniupnpc..."; \ - $(MAKE) -C $$NAT_PATH/vendor/miniupnp/miniupnpc build/libminiupnpc.a; \ - echo "Building libnatpmp..."; \ - $(MAKE) -C $$NAT_PATH/vendor/libnatpmp-upstream libnatpmp.a; \ + @NAT_PATH=$$(nimble path nat_traversal 2>/dev/null | grep -v "^Info:" | grep -v "^Warning:" | head -1); \ + if [ -n "$$NAT_PATH" ] && [ -d "$$NAT_PATH" ]; then \ + if [ ! -f "$$NAT_PATH/vendor/miniupnp/miniupnpc/build/libminiupnpc.a" ]; then \ + echo "Building miniupnpc..."; \ + $(MAKE) -C $$NAT_PATH/vendor/miniupnp/miniupnpc build/libminiupnpc.a CFLAGS="-Os -fPIC" $(HANDLE_OUTPUT); \ + else \ + echo "miniupnpc already built"; \ + fi; \ + if [ ! -f "$$NAT_PATH/vendor/libnatpmp-upstream/libnatpmp.a" ]; then \ + echo "Building libnatpmp..."; \ + $(MAKE) -C $$NAT_PATH/vendor/libnatpmp-upstream libnatpmp.a CFLAGS="-Wall -Os -fPIC -DENABLE_STRNATPMPERR -DNATPMP_MAX_RETRIES=4" $(HANDLE_OUTPUT); \ + else \ + echo "libnatpmp already built"; \ + fi; \ + else \ + echo "Warning: nat_traversal package not found, skipping nat-libs build"; \ fi clean-nat-libs: - @NAT_PATH=$$(nimble path nat_traversal 2>/dev/null); \ - if [ -n "$$NAT_PATH" ]; then \ - $(MAKE) -C $$NAT_PATH/vendor/miniupnp/miniupnpc clean; \ - $(MAKE) -C $$NAT_PATH/vendor/libnatpmp-upstream clean; \ + @NAT_PATH=$$(nimble path nat_traversal 2>/dev/null | grep -v "^Info:" | grep -v "^Warning:" | head -1); \ + if [ -n "$$NAT_PATH" ] && [ -d "$$NAT_PATH" ]; then \ + $(MAKE) -C $$NAT_PATH/vendor/miniupnp/miniupnpc clean $(HANDLE_OUTPUT) || true; \ + $(MAKE) -C $$NAT_PATH/vendor/libnatpmp-upstream clean $(HANDLE_OUTPUT) || true; \ fi # Extend deps and clean targets