]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add --dll-basename flag to give clients control over the DLL's base name. Split the...
authorstephan <stephan@noemail.net>
Fri, 21 Feb 2025 21:58:32 +0000 (21:58 +0000)
committerstephan <stephan@noemail.net>
Fri, 21 Feb 2025 21:58:32 +0000 (21:58 +0000)
FossilOrigin-Name: 8d5fed807b7151dcb79b97cfc2da0e8ac3586a0bf8b4c28967ad4cffafa53c08

Makefile.in
autoconf/Makefile.in
autosetup/proj.tcl
autosetup/sqlite-config.tcl
main.mk
manifest
manifest.uuid

index 99b3a8c8d1e82093367a23414f2d99b45408065f..3178028d81893889e931686e0e12ed89c729b6eb 100644 (file)
@@ -126,11 +126,13 @@ LDFLAGS.libsqlite3.os-specific = @LDFLAGS_MAC_CVERSION@ @LDFLAGS_OUT_IMPLIB@
 # os-specific: see
 # - https://sqlite.org/forum/forumpost/9dfd5b8fd525a5d7
 # - https://sqlite.org/forum/forumpost/0c7fc097b2
+libsqlite3.DLL.basename = @SQLITE_DLL_BASENAME@
+libsqlite3.out.implib = @SQLITE_OUT_IMPLIB@
 # dll.basename: see https://sqlite.org/forum/forumpost/828fdfe904
-#libsqlite3.DLL.basename = @ SQLITE_DLL_BASENAME @
 ENABLE_SHARED = @ENABLE_SHARED@
 ENABLE_STATIC = @ENABLE_STATIC@
 HAVE_WASI_SDK = @HAVE_WASI_SDK@
+libsqlite3.DLL.install-rules = @SQLITE_DLL_INSTALL_RULES@
 
 T.cc.sqlite = $(T.cc) @TARGET_DEBUG@
 
index 5a357dc9e736ddfe53550017b63e7d7c8af4da22..d5207799157a1f7f9f55b760d2ebd198d51e57f2 100644 (file)
@@ -143,7 +143,10 @@ sqlite3.o: $(TOP)/sqlite3.h $(TOP)/sqlite3.c
        $(CC) -c $(TOP)/sqlite3.c -o $@ $(CFLAGS) $(CFLAGS.libsqlite3)
 
 libsqlite3.LIB = libsqlite3$(T.lib)
-libsqlite3.DLL = libsqlite3$(T.dll)
+libsqlite3.DLL.basename = @SQLITE_DLL_BASENAME@
+libsqlite3.out.implib = @SQLITE_OUT_IMPLIB@
+libsqlite3.DLL = $(libsqlite3.DLL.basename)$(T.dll)
+libsqlite3.DLL.install-rules = @SQLITE_DLL_INSTALL_RULES@
 
 $(libsqlite3.DLL): sqlite3.o
        $(CC) -o $@  sqlite3.o $(LDFLAGS.shlib) \
@@ -159,45 +162,59 @@ $(libsqlite3.LIB)-1: $(libsqlite3.LIB)
 $(libsqlite3.LIB)-0:
 all: $(libsqlite3.LIB)-$(ENABLE_LIB_STATIC)
 
-install-so-1: $(install-dir.lib) $(libsqlite3.DLL)
-       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
-       @if [ -f $(libsqlite3.DLL).a ]; then \
-               $(INSTALL) $(libsqlite3.DLL).a "$(install-dir.lib)"; \
+#
+# Maintenance reminder: the install-dll-... rules must be kept in sync
+# with the main copies rom /main.mk.
+#
+install-dll-out-implib: $(install-dir.lib) $(libsqlite3.DLL)
+       @if [ x != "x$(libsqlite3.out.implib)"; then \
+               if [ -f "$(libsqlite3.out.implib)" ]; then \
+                       $(INSTALL) $(libsqlite3.out.implib) "$(install-dir.lib)"; \
+               fi; \
        fi
+
+install-dll-unix-generic: install-dll-out-implib
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
        @echo "Setting up $(libsqlite3.DLL) version symlinks..."; \
-       if [ x.dll = x$(T.dll) ]; then \
-               echo "No library symlinks needed on this platform"; \
-       elif [ x.dylib = x$(T.dll) ]; then \
-               cd "$(install-dir.lib)" || exit $$?; \
-               rm -f libsqlite3.0$(T.dll) libsqlite3.$(PACKAGE_VERSION)$(T.dll) || exit $$?; \
-               dllname=libsqlite3.$(PACKAGE_VERSION)$(T.dll); \
-               mv $(libsqlite3.DLL) $$dllname || exit $$?; \
-               ln -s $$dllname $(libsqlite3.DLL) || exit $$?; \
-               ln -s $$dllname libsqlite3.0$(T.dll) || exit $$?; \
-               ls -la $$dllname $(libsqlite3.DLL) libsqlite3.0$(T.dll); \
-       else \
-               cd "$(install-dir.lib)" || exit $$?; \
-               rm -f $(libsqlite3.DLL).0 $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
-               mv $(libsqlite3.DLL) $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
-               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL) || exit $$?; \
-               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0 || exit $$?; \
-               ls -la $(libsqlite3.DLL) $(libsqlite3.DLL).[a03]*; \
-               if [ -e $(libsqlite3.DLL).0.8.6 ]; then \
-                       echo "ACHTUNG: legacy libtool-compatible install found. Re-linking it..."; \
-                       rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ls -la $(libsqlite3.DLL).0.8.6; \
-               elif [ x1 = "x$(INSTALL_SO_086_LINK)" ]; then \
-                       echo "ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1"; \
-                       rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ls -la $(libsqlite3.DLL).0.8.6; \
-               fi; \
+       cd "$(install-dir.lib)" || exit $$?; \
+       rm -f $(libsqlite3.DLL).0 $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
+       mv $(libsqlite3.DLL) $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
+       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL) || exit $$?; \
+       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0 || exit $$?; \
+       ls -la $(libsqlite3.DLL) $(libsqlite3.DLL).[a03]*; \
+       if [ -e $(libsqlite3.DLL).0.8.6 ]; then \
+               echo "ACHTUNG: legacy libtool-compatible install found. Re-linking it..."; \
+               rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ls -la $(libsqlite3.DLL).0.8.6; \
+       elif [ x1 = "x$(INSTALL_SO_086_LINK)" ]; then \
+               echo "ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1"; \
+               rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ls -la $(libsqlite3.DLL).0.8.6; \
        fi
 
-install-so-0 install-so-:
-install-so: install-so-$(ENABLE_LIB_SHARED)
-install: install-so
+install-dll-msys: install-dll-out-implib
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.bin)"
+# ----------------------------------------------^^^ yes, bin
+install-dll-mingw:  install-dll-msys
+install-dll-cygwin: install-dll-msys
+
+install-dll-darwin: $(install-dir.lib) $(libsqlite3.DLL)
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
+       @echo "Setting up $(libsqlite3.DLL) version symlinks..."; \
+       cd "$(install-dir.lib)" || exit $$?; \
+       rm -f libsqlite3.0$(T.dll) libsqlite3.$(PACKAGE_VERSION)$(T.dll) || exit $$?; \
+       dllname=libsqlite3.$(PACKAGE_VERSION)$(T.dll); \
+       mv $(libsqlite3.DLL) $$dllname || exit $$?; \
+       ln -s $$dllname $(libsqlite3.DLL) || exit $$?; \
+       ln -s $$dllname libsqlite3.0$(T.dll) || exit $$?; \
+       ls -la $$dllname $(libsqlite3.DLL) libsqlite3.0$(T.dll)
+
+install-dll-1: install-dll-$(libsqlite3.DLL.install-rules)
+install-dll-0 install-dll-:
+install-dll: install-dll-$(ENABLE_LIB_SHARED)
+install: install-dll
 
 install-lib-1: $(install-dir.lib) $(libsqlite3.LIB)
        $(INSTALL.noexec) $(libsqlite3.LIB) "$(install-dir.lib)"
index c11b05d5f725784d597705c181af748364785e4b..f228dce217518fec23de499dffd48596d8b7eaf4 100644 (file)
@@ -389,6 +389,15 @@ proc proj-opt-set {flag {val 1}} {
   return $val
 }
 
+########################################################################
+# @proj-opt-exists flag
+#
+# Returns 1 if the given flag has been defined as a legal configure
+# option, else returns 0.
+proc proj-opt-exists {flag} {
+  expr {$flag in $::autosetup(options)};
+}
+
 ########################################################################
 # @proj-val-truthy val
 #
index 6dc1534314261abaed774855a549cb646c664c36..d37148819cf79bdd47f7fc5575e7ed36a68631aa 100644 (file)
@@ -231,6 +231,8 @@ proc sqlite-config-bootstrap {buildMode} {
     # Options for exotic/alternative build modes
     alternative-builds {
       {canonical} {
+        # Potential TODO: add --with-wasi-sdk support to the autoconf
+        # build
         with-wasi-sdk:=/opt/wasi-sdk
           => {Top-most dir of the wasi-sdk for a WASI build}
         with-emsdk:=auto
@@ -247,12 +249,6 @@ proc sqlite-config-bootstrap {buildMode} {
           => {Link the sqlite3 shell app against the DLL instead of embedding sqlite3.c}
       }
       {*} {
-        # dll-basename: https://sqlite.org/forum/forumpost/828fdfe904
-#        dll-basename:=auto
-#          => {Secifies the base name of the resulting DLL file, defaulting to a
-#              platform-depending name (libsqlite3 on my Unix-style platforms).
-#              e.g. --dll-basename=msys-sqlite3-0
-#          }
         # soname: https://sqlite.org/src/forumpost/5a3b44f510df8ded
         soname:=legacy
           => {SONAME for libsqlite3.so. "none", or not using this flag, sets no
@@ -261,6 +257,13 @@ proc sqlite-config-bootstrap {buildMode} {
               it to that literal value. Any other value is assumed to be a
               suffix which gets applied to "libsqlite3.so.",
               e.g. --soname=9.10 equates to "libsqlite3.so.9.10".}
+        # dll-basename: https://sqlite.org/forum/forumpost/828fdfe904
+        dll-basename:=auto
+          => {Specifies the base name of the resulting DLL file, defaulting to a
+              platform-depending name (libsqlite3 on most Unix-style platforms).
+              If not provided, libsqlite3 is assumed, but if provided without a
+              value then a platform-dependent default is used.
+              e.g. --dll-basename=msys-sqlite3-0}
         # out-implib: https://sqlite.org/forum/forumpost/0c7fc097b2
         out-implib:=auto
           => {Enable use of --out-implib linker flag to generate an
@@ -1261,10 +1264,33 @@ proc sqlite-handle-mac-cversion {} {
 }
 
 ########################################################################
-# Define LDFLAGS_OUT_IMPLIB to either an empty string or to a
+# Handles the --dll-basename configure flag. [define]'s
+# SQLITE_DLL_BASENAME to the build's preferred base name (minus
+# extension).
+proc sqlite-handle-dll-basename {} {
+  if {[proj-opt-exists dll-basename]} {
+    set dn [join [opt-val dll-basename] ""]
+  } else {
+    set dn auto
+  }
+  if {$dn in {auto ""}} {
+    switch -glob -- [get-define host] {
+      *-*-cygwin* { set dn cygsqlite3-0 }
+      *-*-ming*   { set dn libsqlite3-0 }
+      *-*-msys*   { set dn msys-sqlite3-0 }
+      default     { set dn libsqlite3 }
+    }
+  }
+  define SQLITE_DLL_BASENAME $dn
+}
+
+########################################################################
+# [define]s LDFLAGS_OUT_IMPLIB to either an empty string or to a
 # -Wl,... flag for the platform-specific --out-implib flag, which is
 # used for building an "import library .dll.a" file on some platforms
-# (e.g. mingw). Returns 1 if supported, else 0. The actual
+# (e.g. msys2, mingw). Returns 1 if supported, else 0.
+#
+# The name of the import library is [define]d in SQLITE_OUT_IMPLIB.
 #
 # If the configure flag --out-implib is not used then this is a no-op.
 # If that flag is used but the capability is not available, a fatal
@@ -1283,18 +1309,21 @@ proc sqlite-handle-mac-cversion {} {
 # - msys2 packages historically install /usr/lib/libsqlite3.dll.a
 #   despite the DLL being in /usr/bin/msys-sqlite3-0.dll.
 proc sqlite-handle-out-implib {} {
+  sqlite-handle-dll-basename
   define LDFLAGS_OUT_IMPLIB ""
+  define SQLITE_OUT_IMPLIB ""
   set rc 0
   if {[proj-opt-was-provided out-implib]} {
-    set dn [join [opt-val out-implib] ""]
-    if {$dn in {auto ""}} {
-      set dn "libsqlite3" ;# [get-define SQLITE_DLL_BASENAME]
+    set olBaseName [join [opt-val out-implib] ""]
+    if {$olBaseName in {auto ""}} {
+      set olBaseName "libsqlite3" ;# [get-define SQLITE_DLL_BASENAME]
     }
     cc-with {-link 1} {
-      set dll "${dn}[get-define TARGET_DLLEXT]"
+      set dll "${olBaseName}[get-define TARGET_DLLEXT]"
       set flags "-Wl,--out-implib,${dll}.a"
       if {[cc-check-flags $flags]} {
         define LDFLAGS_OUT_IMPLIB $flags
+        define SQLITE_OUT_IMPLIB ${dll}.a
         set rc 1
       }
     }
@@ -1305,11 +1334,37 @@ proc sqlite-handle-out-implib {} {
   return $rc
 }
 
+########################################################################
+# [define] SQLITE_DLL_INSTALL_RULES to a symbolic name of a set of
+# "make install" rules to use. The makefile is tasked with with
+# providing rules named install-dll-NAME which runs the installation
+# for that set, as well as providing a rule named install-dll which
+# resolves to install-dll-NAME (perhaps indirectly, depending on
+# whether the DLL is (de)activated).
+proc sqlite-determine-dll-install-rules {} {
+  set n unix-generic
+  switch -glob -- [get-define host] {
+    *-*-cygwin* { set n cygwin }
+    *-*-ming*   { set n mingw }
+    *-*-msys*   { set n msys }
+    *apple* -
+    *darwin*    { set n darwin }
+  }
+  define SQLITE_DLL_INSTALL_RULES $n
+}
+
 ########################################################################
 # Performs late-stage config steps common to both the canonical and
 # autoconf bundle builds.
 proc sqlite-config-finalize {} {
-  #sqlite-handle-dll-basename
+# Pending: move some of the auto.def code into this switch
+#  switch -exact -- $::sqliteConfig(build-mode) {
+#    canonical {
+#    }
+#    autoconf {
+#    }
+#  }
+  sqlite-determine-dll-install-rules
   sqlite-handle-out-implib
   sqlite-handle-mac-cversion
   sqlite-process-dot-in-files
@@ -1767,23 +1822,6 @@ proc sqlite-handle-tcl {} {
   msg-result "TCL for code generation: [sqlite-determine-codegen-tcl]"
 }
 
-########################################################################
-# Handles the --dll-basename configure flag. [define]'s
-# SQLITE_DLL_BASENAME to the build's perferred base name (minus
-# extension).
-proc sqlite-handle-dll-basename {} {
-  set dn [opt-val dll-basename]
-  if {$rn in {auto ""}} {
-    switch -glob -- [get-define host] {
-      *-*-cygwin* { set dn cygsqlite3-0 }
-      *-*-ming*   { set dn libsqlite3-0 }
-      *-*-msys*   { set dn msys-sqlite3-0 }
-      default     { set dn libsqlite3 }
-    }
-  }
-  define SQLITE_DLL_BASENAME $dn
-}
-
 # TODO? Figure out whether the DLL needs to go under /lib or /bin
 # (msys, cygwin, etc).
 # proc sqlite-handle-dll-install-dir {} {}
diff --git a/main.mk b/main.mk
index 9cc31a8fa8f20bf4a3a9484e135efc2835d88408..fd81dd84f4a66f6b188003770338cb9e6eb60575 100644 (file)
--- a/main.mk
+++ b/main.mk
@@ -1055,17 +1055,31 @@ T.link.tcl = $(T.tcl.env.source); $(T.link)
 #
 # libsqlite3.DLL.basename = the base name of the resulting DLL. This
 # is typically libsqlite3 but varies wildly on Unix-like Windows
-# environments (msys, cygwin, and friends).
+# environments (msys, cygwin, and friends). Conversely, the base name
+# of the static library ($(libsqlite3.LIB)) is constant on all tested
+# platforms.
 #
 libsqlite3.DLL.basename ?= libsqlite3
 #
+# libsqlite3.DLL => the DLL library
+#
+libsqlite3.DLL = $(libsqlite3.DLL.basename)$(T.dll)
+#
+# libsqlite3.out.implib => "import library" file generated by the
+# --out-implib linker flag. Not commonly used on Unix systems but is
+# on the Windows-side Unix-esque environments and typically as a value
+# of "libsqlite3.dll.a".
+#
+libsqlite3.out.implib ?=
+#
 # libsqlite3.LIB => the static library
 #
 libsqlite3.LIB = libsqlite3$(T.lib)
+
 #
-# libsqlite3.LIB => the DLL library
-#
-libsqlite3.DLL = $(libsqlite3.DLL.basename)$(T.dll)
+# libsqlite3.DLL.install-rules => the suffix of the symoblic name of
+# the makefile rules for installing the DLL.
+libsqlite3.DLL.install-rules ?= unix-generic
 
 # Rules to build the LEMON compiler generator
 #
@@ -1485,45 +1499,54 @@ all: so
 # In either case, libsqlite3.la, if found, is deleted because it would
 # contain stale state, refering to non-libtool-generated libraries.
 #
-install-so-1: $(install-dir.lib) $(libsqlite3.DLL)
-       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
-       @if [ -f $(libsqlite3.DLL).a ]; then \
-               $(INSTALL) $(libsqlite3.DLL).a "$(install-dir.lib)"; \
+
+install-dll-out-implib: $(install-dir.lib) $(libsqlite3.DLL)
+       if [ x != "x$(libsqlite3.out.implib)" ] && [ -f "$(libsqlite3.out.implib)" ]; then \
+               $(INSTALL) $(libsqlite3.out.implib) "$(install-dir.lib)"; \
        fi
+
+install-dll-unix-generic: install-dll-out-implib
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
        @echo "Setting up $(libsqlite3.DLL) version symlinks..."; \
-       if [ x.dll = x$(T.dll) ]; then \
-               echo "No library symlinks needed on this platform"; \
-       elif [ x.dylib = x$(T.dll) ]; then \
-               cd "$(install-dir.lib)" || exit $$?; \
-               rm -f libsqlite3.0$(T.dll) libsqlite3.$(PACKAGE_VERSION)$(T.dll) || exit $$?; \
-               dllname=libsqlite3.$(PACKAGE_VERSION)$(T.dll); \
-               mv $(libsqlite3.DLL) $$dllname || exit $$?; \
-               ln -s $$dllname $(libsqlite3.DLL) || exit $$?; \
-               ln -s $$dllname libsqlite3.0$(T.dll) || exit $$?; \
-               ls -la $$dllname $(libsqlite3.DLL) libsqlite3.0$(T.dll); \
-       else \
-               cd "$(install-dir.lib)" || exit $$?; \
-               rm -f $(libsqlite3.DLL).0 $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
-               mv $(libsqlite3.DLL) $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
-               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL) || exit $$?; \
-               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0 || exit $$?; \
-               ls -la $(libsqlite3.DLL) $(libsqlite3.DLL).[a03]*; \
-               if [ -e $(libsqlite3.DLL).0.8.6 ]; then \
-                       echo "ACHTUNG: legacy libtool-compatible install found. Re-linking it..."; \
-                       rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ls -la $(libsqlite3.DLL).0.8.6; \
-               elif [ x1 = "x$(INSTALL_SO_086_LINK)" ]; then \
-                       echo "ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1"; \
-                       rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
-                       ls -la $(libsqlite3.DLL).0.8.6; \
-               fi; \
+       cd "$(install-dir.lib)" || exit $$?; \
+       rm -f $(libsqlite3.DLL).0 $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
+       mv $(libsqlite3.DLL) $(libsqlite3.DLL).$(PACKAGE_VERSION) || exit $$?; \
+       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL) || exit $$?; \
+       ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0 || exit $$?; \
+       ls -la $(libsqlite3.DLL) $(libsqlite3.DLL).[a03]*; \
+       if [ -e $(libsqlite3.DLL).0.8.6 ]; then \
+               echo "ACHTUNG: legacy libtool-compatible install found. Re-linking it..."; \
+               rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ls -la $(libsqlite3.DLL).0.8.6; \
+       elif [ x1 = "x$(INSTALL_SO_086_LINK)" ]; then \
+               echo "ACHTUNG: installing legacy libtool-style links because INSTALL_SO_086_LINK=1"; \
+               rm -f libsqlite3.la $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ln -s $(libsqlite3.DLL).$(PACKAGE_VERSION) $(libsqlite3.DLL).0.8.6 || exit $$?; \
+               ls -la $(libsqlite3.DLL).0.8.6; \
        fi
 
-install-so-0 install-so-:
-install-so: install-so-$(ENABLE_SHARED)
-install: install-so
+install-dll-msys: install-dll-out-implib
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.bin)"
+# ----------------------------------------------^^^ yes, bin
+install-dll-mingw:  install-dll-msys
+install-dll-cygwin: install-dll-msys
+
+install-dll-darwin: $(install-dir.lib) $(libsqlite3.DLL)
+       $(INSTALL) $(libsqlite3.DLL) "$(install-dir.lib)"
+       @echo "Setting up $(libsqlite3.DLL) version symlinks..."; \
+       cd "$(install-dir.lib)" || exit $$?; \
+       rm -f libsqlite3.0$(T.dll) libsqlite3.$(PACKAGE_VERSION)$(T.dll) || exit $$?; \
+       dllname=libsqlite3.$(PACKAGE_VERSION)$(T.dll); \
+       mv $(libsqlite3.DLL) $$dllname || exit $$?; \
+       ln -s $$dllname $(libsqlite3.DLL) || exit $$?; \
+       ln -s $$dllname libsqlite3.0$(T.dll) || exit $$?; \
+       ls -la $$dllname $(libsqlite3.DLL) libsqlite3.0$(T.dll)
+
+install-dll-1: install-dll-$(libsqlite3.DLL.install-rules)
+install-dll-0 install-dll-:
+install-dll: install-dll-$(ENABLE_SHARED)
+install: install-dll
 
 #
 # Install $(libsqlite3.LIB)
index b3770f3396ae1db12ea425d42f46fe3ab3503019..f87e25144e2bbf2bf1a3b428e001c247d3e9448c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
-C Extend\s--out-implib\sto\soptionally\sspecify\sthe\simport\slib's\sname.\sAdd\sas-yet-unused\sinternals\sfor\sspecifying\sthe\sDLL's\sbase\sname\s(which\sdiffers\sacross\sthe\sWindows-side\sUnix-esque\senvironments).
-D 2025-02-21T20:28:44.646
+C Add\s--dll-basename\sflag\sto\sgive\sclients\scontrol\sover\sthe\sDLL's\sbase\sname.\sSplit\sthe\sDLL\sinstallation\smakefile\srules\sinto\sdigestible,\splatform-specific\schunks.\sOn\sWindows-side\sUnix-like\senvironments,\sinstall\sthe\sDLL\sinto\sthe\sbin\sdir.\sRequires\stesting\sand\sfeedback\sfrom\sthose\splatforms'\spackage\smaintainers\sto\sconfirm\sit\sfollows\sthe\sexpectated\sconventions.
+D 2025-02-21T21:58:32.801
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
-F Makefile.in 2d87dc1a64add400f047d0357f8f30e73b890aa5076b7f8f7d02cd1f3557beb1
+F Makefile.in 367abe20304ed8b467477be68ab9110daeef8d63186789706e66d4b7c73bc561
 F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
 F Makefile.msc 50c656e096ae49ccf9e5e88b4995f0a155f231ebae5b6d185cc64ce99d728a83
 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
@@ -16,7 +16,7 @@ F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531
 F auto.def eddf6aef976e2c1a56c0accc3244945e0b22ec6799074c40be160e5a9a5662b0
 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
-F autoconf/Makefile.in d376f623fa747798e40f7fcb23f9392e4f87610daa8425673ab83a8f33578b65
+F autoconf/Makefile.in 950a7afa36f4b91caf468ab55981f67d6ff9fea014156474af6bf9b9f4218926
 F autoconf/Makefile.msc 1249e425a24859c7b3f17575275247df9eec3bddc0d1d7e73941f1abdbb95a92
 F autoconf/README.first f1d3876e9a7852c22f275a6f06814e64934cecbc0b5b9617d64849094c1fd136
 F autoconf/README.txt 7f01dc3915e2d68f329011073662369e62a0938a2c69398807823c57591cb288
@@ -49,8 +49,8 @@ F autosetup/cc-shared.tcl 4f024e94a47f427ba61de1739f6381ef0080210f9fae89112d5c1d
 F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e45f
 F autosetup/jimsh0.c 6573f6bc6ff204de0139692648d7037ca0b6c067bac83a7b4e087f20a86866a4
 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
-F autosetup/proj.tcl cd6134e98d06ab4ae3be746d185dcdbf5180bfa049fe46a6726e703f56ea2f9c
-F autosetup/sqlite-config.tcl c6c9ad74147e5f0ae39f0e5e207c4a8140066982c7eb21c68dd4b6483f85968e
+F autosetup/proj.tcl 3124addb1a46c7d9c8c38a3016cd23797185c3fd977570728397aaa9eadd0039
+F autosetup/sqlite-config.tcl 4e546e42a7fb279b41edd3399bd61e3d40586b2c4802cbe43891c780298dda5b
 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
@@ -705,7 +705,7 @@ F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36
 F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
 F ext/wasm/wasmfs.make 68999f5bd8c489239592d59a420f8c627c99169bbd6fa16a404751f757b9f702
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
-F main.mk 53df76bae4f2538a086fa39b6eb9a4238b9551895b2bde3b14187fa246ca0336
+F main.mk 9c4b47a2dd1f75c71570b17758e0dc07ecf1a00011c62650a9fa102776619738
 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
 F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@@ -2210,11 +2210,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ebf41fc90aa9fb1bb96239145c0cdd06eced391499975c71734610996d088641
-R b539368d0fe58a110d27ce4df6690ee7
-T *branch * configure-dll-support
-T *sym-configure-dll-support *
-T -sym-trunk * Cancelled\sby\sbranch.
+P 12a55d343f9663acb68cd0f75fbb6c9ab67f4f88ad296e3e266f12d91522dd19
+R 04a1ae38e3a281f33d8df2618ff417dc
 U stephan
-Z d83368e818c74940a16d5a2f7cf79842
+Z 14104c089c02833f5f00be9f4a410169
 # Remove this line to create a well-formed Fossil manifest.
index 7217eed5fe00fcee1c62d3319687d5ae82c66229..baeb4ebc4c798e25cb752e4bdcbac46fde8f60b2 100644 (file)
@@ -1 +1 @@
-12a55d343f9663acb68cd0f75fbb6c9ab67f4f88ad296e3e266f12d91522dd19
+8d5fed807b7151dcb79b97cfc2da0e8ac3586a0bf8b4c28967ad4cffafa53c08