aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-12-25 13:08:29 -0500
committerBruce Hill <bruce@bruce-hill.com>2025-12-25 13:08:29 -0500
commitc3820ac5ac4fd1d67d8b0580c3af621474ce4be2 (patch)
tree90490a551257eed8e7721384e9924544d630c155
parentcb336b312e7012dc05fe7d8ac1c0e924dbc6c840 (diff)
Build libtomo.a using files from gc/gmp/unistring and statically link
executables against that
-rw-r--r--Makefile13
-rw-r--r--src/tomo.c3
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 <user>" or "doas -u <user>"