From 39af33c6d066a06b89c457cd9353d2f259cd5eb5 Mon Sep 17 00:00:00 2001
From: PS
Date: Tue, 10 Mar 2026 22:42:08 +0100
Subject: Fix build system
---
Makefile | 55 ++++++++++++++++++++++++++++++++++-------------
configure | 74 +++++++++++++++++++++++++++++++++++----------------------------
2 files changed, 81 insertions(+), 48 deletions(-)
diff --git a/Makefile b/Makefile
index 90993dc..62bc1a1 100644
--- a/Makefile
+++ b/Makefile
@@ -25,10 +25,13 @@ LIB_DEFS :=
BIN_SYMLINKS :=
TEST_BINS :=
+-include config.mak
+include package/targets.mak
+
define library_definition
-LIB$(1) := lib$(2).$(if $(DO_ALLSTATIC),a,so).xyzzy
+LIB$(1) := lib$(2).$(if $(DO_ALLSTATIC),a,$(SHLIB_EXT)).xyzzy
ifdef DO_SHARED
-SHARED_LIBS += lib$(2).so.xyzzy
+SHARED_LIBS += lib$(2).$(SHLIB_EXT).xyzzy
endif
ifdef DO_STATIC
STATIC_LIBS += lib$(2).a.xyzzy
@@ -39,6 +42,7 @@ endif
lib$(2).pc:
exec env \
+ prefix="$(prefix)" \
library="$(2)" \
includedir="$(includedir)" \
dynlibdir="$(dynlibdir)" \
@@ -67,9 +71,6 @@ $(DESTDIR)$(1)/$(2): $(DESTDIR)$(1)/$(SYMLINK_TARGET_$(2))
exec $(INSTALL) -l $$( $$package-$$version.tar.gz.sha256 && \
- exec rm -rf $$package-$$version
+ exec rm -rf /tmp/$$package-$$version
strip: $(ALL_LIBS) $(ALL_BINS)
ifneq ($(strip $(STATIC_LIBS)),)
@@ -124,7 +125,7 @@ ifneq ($(strip $(ALL_BINS)$(SHARED_LIBS)),)
endif
install: install-dynlib install-libexec install-bin install-symlinks install-lib install-include install-pkgconfig
-install-dynlib: $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(dynlibdir)/lib%.so)
+install-dynlib: $(SHARED_LIBS:lib%.$(SHLIB_EXT).xyzzy=$(DESTDIR)$(dynlibdir)/lib%.$(SHLIB_EXT))
install-libexec: $(LIBEXEC_TARGETS:%=$(DESTDIR)$(libexecdir)/%)
install-bin: $(BIN_TARGETS:%=$(DESTDIR)$(bindir)/%)
install-symlinks: $(BIN_SYMLINKS:%=$(DESTDIR)$(bindir)/%)
@@ -156,10 +157,10 @@ $(DESTDIR)$(sproot)/library.so/lib%.so.$(version_M): $(DESTDIR)$(dynlibdir)/lib%
endif
-$(DESTDIR)$(dynlibdir)/lib%.so $(DESTDIR)$(dynlibdir)/lib%.so.$(version_M): lib%.so.xyzzy
- $(INSTALL) -D -m 755 $< $@.$(version) && \
- $(INSTALL) -l $(@F).$(version) $@.$(version_M) && \
- exec $(INSTALL) -l $(@F).$(version_M) $@
+$(DESTDIR)$(dynlibdir)/lib%.so $(DESTDIR)$(dynlibdir)/lib%.so.$(version_M) $(DESTDIR)$(dynlibdir)/lib%.so.$(version): lib%.so.xyzzy
+ $(INSTALL) -D -m 755 $< $(@D)/lib$(*F).so.$(version) && \
+ $(INSTALL) -l lib$(*F).so.$(version) $(@D)/lib$(*F).so.$(version_M) && \
+ exec $(INSTALL) -l lib$(*F).so.$(version_M) $(@D)/lib$(*F).so
$(DESTDIR)$(libdir)/lib%.a: lib%.a.xyzzy
exec $(INSTALL) -D -m 644 $< $@
@@ -192,3 +193,27 @@ lib%.so.xyzzy:
.PHONY: it all clean distclean tests check tgz strip install install-dynlib install-bin install-lib install-include install-pkgconfig
.DELETE_ON_ERROR:
+
+ifeq ($(SHLIB_EXT),dylib)
+
+version_X := $(shell exec expr 256 '*' $(version_l) + $(subst .,,$(suffix $(version_M))))
+version_XY := $(version_X)$(suffix $(version_m))
+version_XYZ := $(version_XY)$(suffix $(version))
+
+ifneq ($(exthome),)
+global-links: $(SHARED_LIBS:lib%.dylib.xyzzy=$(DESTDIR)$(sproot)/library.so/lib%.$(version_X).dylib)
+
+$(DESTDIR)$(sproot)/library.so/lib%.$(version_X).dylib: $(DESTDIR)$(sproot)/library.so/lib%.$(version_M).dylib
+ exec $(INSTALL) -l $(&3 3>&-
--
cgit v1.2.3