From c3820ac5ac4fd1d67d8b0580c3af621474ce4be2 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 25 Dec 2025 13:08:29 -0500 Subject: Build libtomo.a using files from gc/gmp/unistring and statically link executables against that --- Makefile | 13 ++++++++++--- src/tomo.c | 3 +-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index d95af97c..6517c26b 100644 --- a/Makefile +++ b/Makefile @@ -139,8 +139,13 @@ $(BUILD_DIR)/bin/$(EXE_FILE): $(STDLIB_OBJS) $(COMPILER_OBJS) | $(BUILD_DIR)/bin @$(ECHO) $(CC) $(CFLAGS_PLACEHOLDER) $(LDFLAGS) $^ $(LDLIBS) -o $@ @$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@ -$(BUILD_DIR)/lib/$(AR_FILE): $(STDLIB_OBJS) | $(BUILD_DIR)/lib - ar -rcs $@ $^ +$(BUILD_DIR)/lib/$(AR_FILE): $(STDLIB_OBJS) build/gc/lib/libgc.a build/unistring/lib/libunistring.a build/gmp/lib/libgmp.a | $(BUILD_DIR)/lib + mkdir -p tmp; \ + cd tmp; \ + ar -x ../build/gc/lib/libgc.a; \ + ar -x ../build/unistring/lib/libunistring.a; \ + ar -x ../build/gmp/lib/libgmp.a; \ + ar -rcs ../$@ $(addprefix ../,$(STDLIB_OBJS)) *.o $(BUILD_DIR)/lib/tomo@$(TOMO_VERSION)/modules.ini: modules/core.ini modules/examples.ini | $(BUILD_DIR)/lib/tomo@$(TOMO_VERSION) @cat $^ > $@ @@ -222,7 +227,9 @@ examples: core-libs: ./local-tomo -L modules/core.ini -deps: +deps: build/gc/lib/libgc.a build/unistring/lib/libgc.a build/gmp/lib/libgmp.a + +build/gc/lib/libgc.a build/unistring/lib/libgc.a build/gmp/lib/libgmp.a: $(MAKE) -C vendor check-utilities: check-c-compiler diff --git a/src/tomo.c b/src/tomo.c index f5027fff..4e2cdf5d 100644 --- a/src/tomo.c +++ b/src/tomo.c @@ -86,8 +86,7 @@ static OptionalText_t show_codegen = NONE_TEXT, " -D_BSD_SOURCE" #endif " -DGC_THREADS"), - ldlibs = Text("-lgc -lm -lgmp -lunistring"), ldflags = Text(""), optimization = Text("2"), - cc = Text(DEFAULT_C_COMPILER); + ldlibs = Text("-lm"), ldflags = Text(""), optimization = Text("2"), cc = Text(DEFAULT_C_COMPILER); static Text_t config_summary, // This will be either "" or "sudo -u " or "doas -u " -- cgit v1.2.3