aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-12-22 17:51:26 -0500
committerBruce Hill <bruce@bruce-hill.com>2025-12-22 17:51:26 -0500
commit7653cc84cff0b9168eeaccd056631e70a16930a0 (patch)
tree60fec43bad2c0acb665504180d78082a5fdffac1
parent04a8c524dbc4f13204b075dcb49b2f9b924a6f1c (diff)
Rip out shared library code
-rw-r--r--Makefile12
-rw-r--r--src/tomo.c33
2 files changed, 3 insertions, 42 deletions
diff --git a/Makefile b/Makefile
index bb807187..0356fa59 100644
--- a/Makefile
+++ b/Makefile
@@ -88,7 +88,6 @@ CFLAGS += $(CCONFIG) $(INCLUDE_DIRS) $(EXTRA) $(CWARN) $(G) $(O) $(OSFLAGS) $(LT
-DGIT_VERSION='"$(GIT_VERSION)"' -ffunction-sections -fdata-sections
CFLAGS_PLACEHOLDER="$$(printf '\033[2m<flags...>\033[m\n')"
LDLIBS=-lgc -lm -lunistring -lgmp
-LIBTOMO_FLAGS=-shared
ifeq ($(OS),OpenBSD)
LDLIBS += -lexecinfo
@@ -100,11 +99,6 @@ AR_FILE=libtomo@$(TOMO_VERSION).a
ifeq ($(OS),Darwin)
INCLUDE_DIRS += -I/opt/homebrew/include
LDFLAGS += -L/opt/homebrew/lib
- LIB_FILE=libtomo@$(TOMO_VERSION).dylib
- LIBTOMO_FLAGS += -Wl,-install_name,@rpath/libtomo@$(TOMO_VERSION).dylib
-else
- LIB_FILE=libtomo@$(TOMO_VERSION).so
- LIBTOMO_FLAGS += -Wl,-soname,libtomo@$(TOMO_VERSION).so
endif
EXE_FILE=tomo@$(TOMO_VERSION)
@@ -151,10 +145,6 @@ $(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/$(LIB_FILE): $(STDLIB_OBJS) | $(BUILD_DIR)/lib
- @$(ECHO) $(CC) $^ $(CFLAGS_PLACEHOLDER) $(OSFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTOMO_FLAGS) -o $@
- @$(CC) $^ $(CFLAGS) $(OSFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTOMO_FLAGS) -o $@
-
$(BUILD_DIR)/lib/$(AR_FILE): $(STDLIB_OBJS) | $(BUILD_DIR)/lib
ar -rcs $@ $^
@@ -164,7 +154,7 @@ $(BUILD_DIR)/lib/tomo@$(TOMO_VERSION)/modules.ini: modules/core.ini modules/exam
$(BUILD_DIR)/share/licenses/tomo@$(TOMO_VERSION)/LICENSE.md: LICENSE.md | $(BUILD_DIR)/share/licenses/tomo@$(TOMO_VERSION)
cp $< $@
-build: $(BUILD_DIR)/bin/tomo $(BUILD_DIR)/bin/tomo@$(TOMO_VERSION) $(BUILD_DIR)/lib/$(LIB_FILE) \
+build: $(BUILD_DIR)/bin/tomo $(BUILD_DIR)/bin/tomo@$(TOMO_VERSION) \
$(BUILD_DIR)/lib/$(AR_FILE) $(BUILD_DIR)/lib/tomo@$(TOMO_VERSION)/modules.ini \
$(BUILD_DIR)/share/licenses/tomo@$(TOMO_VERSION)/LICENSE.md $(build_headers) $(build_manpages)
diff --git a/src/tomo.c b/src/tomo.c
index 4b817e87..b8588566 100644
--- a/src/tomo.c
+++ b/src/tomo.c
@@ -69,12 +69,6 @@ static const char *paths_str(List_t paths) {
return Text$as_c_string(result);
}
-#ifdef __APPLE__
-#define SHARED_SUFFIX ".dylib"
-#else
-#define SHARED_SUFFIX ".so"
-#endif
-
static OptionalBool_t verbose = false, quiet = false, show_version = false, show_prefix = false, clean_build = false,
source_mapping = true, should_install = false;
@@ -507,29 +501,6 @@ void build_library(Path_t lib_dir) {
compile_files(env, tm_files, &object_files, &extra_ldlibs, COMPILE_OBJ);
Text_t lib_name = get_library_name(lib_dir);
- Path_t shared_lib = Path$child(lib_dir, Texts(Text("lib"), lib_name, Text(SHARED_SUFFIX)));
- if (is_stale_for_any(shared_lib, object_files, false)) {
- FILE *prog =
- run_cmd(cc, " -O", optimization, " ", cflags, " ", ldflags, " ", ldlibs, " ", list_text(extra_ldlibs),
-#ifdef __APPLE__
- " -Wl,-install_name,@rpath/'lib", lib_name, SHARED_SUFFIX,
- "'"
-#else
- " -Wl,-soname,'lib", lib_name, SHARED_SUFFIX,
- "'"
-#endif
- " -shared ",
- paths_str(object_files), " -o '", shared_lib, "'");
-
- if (!prog) print_err("Failed to run C compiler: ", cc);
- int status = pclose(prog);
- if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) exit(EXIT_FAILURE);
-
- if (!quiet) print("Compiled shared library:\t", Path$relative_to(shared_lib, Path$current_dir()));
- } else {
- if (verbose) whisper("Unchanged: ", shared_lib);
- }
-
Path_t archive = Path$child(lib_dir, Texts(Text("lib"), lib_name, ".a"));
if (is_stale_for_any(archive, object_files, false)) {
FILE *prog = run_cmd("ar -rcs '", archive, "' ", paths_str(object_files));
@@ -556,11 +527,11 @@ void install_library(Path_t lib_dir) {
}
// If we have `debugedit` on this system, use it to remap the debugging source information
// to point to the installed version of the source file. Otherwise, fail silently.
- if (verbose) whisper("Updating debug symbols for ", dest, "/lib", lib_name, SHARED_SUFFIX);
+ if (verbose) whisper("Updating debug symbols for ", dest, "/lib", lib_name, ".a");
int result = system(String(as_owner, "debugedit -b ", lib_dir, " -d '", dest,
"'"
" '",
- dest, "/lib", lib_name, SHARED_SUFFIX,
+ dest, "/lib", lib_name, ".a",
"' "
">/dev/null 2>/dev/null"));
(void)result;