diff third_party/sqlite3/tea/Makefile.in @ 173:827c6ac504cd hg-web

Merged in default here.
author MrJuneJune <me@mrjunejune.com>
date Mon, 19 Jan 2026 18:59:10 -0800
parents 589bab390fb4
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/third_party/sqlite3/tea/Makefile.in	Mon Jan 19 18:59:10 2026 -0800
@@ -0,0 +1,559 @@
+all:
+#
+# Unless this file is named Makefile.in, you are probably looking
+# at an automatically generated/filtered copy and should probably not
+# edit it.
+#
+# This makefile is part of the teaish framework, a tool for building
+# Tcl extensions, conceptually related to TEA/tclconfig but using the
+# Autosetup configuration system instead of the GNU Autotools.
+#
+# A copy of this makefile gets processed for each extension separately
+# and populated with info about how to build, test, and install the
+# extension.
+#
+# Maintenance reminder: this file needs to stay portable with POSIX
+# Make, not just GNU Make. Yes, that's unfortunate because it makes
+# some things impossible (like skipping over swathes of rules when
+# 'make distclean' is invoked).
+#
+
+CC = @CC@
+INSTALL = @BIN_INSTALL@
+INSTALL.noexec = $(INSTALL) -m 0644
+
+#
+# Var name prefixes:
+#
+# teaish. => teaish core
+# tx.     => teaish extension
+#
+# Vars with a "tx." or "teaish." prefix are all "public" for purposes
+# of the extension makefile, but the extension must not any "teaish."
+# vars and must only modify "tx." vars where that allowance is
+# specifically noted.
+#
+# Vars with a "teaish__" prefix are "private" and must not be used by
+# the extension makefile. They may change semantics or be removed in
+# any given teaish build.
+#
+tx.name          = @TEAISH_NAME@
+tx.version       = @TEAISH_VERSION@
+tx.name.pkg      = @TEAISH_PKGNAME@
+tx.libdir        = @TEAISH_LIBDIR_NAME@
+tx.loadPrefix    = @TEAISH_LOAD_PREFIX@
+tx.tcl           = @TEAISH_TCL@
+tx.makefile      = @TEAISH_MAKEFILE@
+tx.makefile.in   = @TEAISH_MAKEFILE_IN@
+tx.dll8.basename = @TEAISH_DLL8_BASENAME@
+tx.dll9.basename = @TEAISH_DLL9_BASENAME@
+tx.dll8          = @TEAISH_DLL8@
+tx.dll9          = @TEAISH_DLL9@
+tx.dll           = $(tx.dll$(TCL_MAJOR_VERSION))
+tx.dir           = @TEAISH_EXT_DIR@
+@if TEAISH_TM_TCL
+# Input filename for tcl::tm-style module
+tx.tm             = @TEAISH_TM_TCL@
+# Target filename for tcl::tm-style installation
+tx.tm.tgt        = $(tx.name.pkg)-$(tx.version).tm
+@endif
+
+@if TEAISH_DIST_NAME
+tx.name.dist     = @TEAISH_DIST_NAME@
+@else
+tx.name.dist     = $(teaish.name)
+@endif
+
+teaish.dir           = @abs_top_srcdir@
+#teaish.dir.autosetup = @TEAISH_AUTOSETUP_DIR@
+teaish.makefile      = Makefile
+teaish.makefile.in   = $(teaish.dir)/Makefile.in
+teaish__auto.def     = $(teaish.dir)/auto.def
+
+#
+# Autotools-conventional vars. We don't actually use these in this
+# makefile but some may be referenced by vars imported via
+# tclConfig.sh. They are part of the public API and may be reliably
+# depended on from teaish.make.in.
+#
+bindir         = @bindir@
+datadir        = @datadir@
+exec_prefix    = @exec_prefix@
+includedir     = @includedir@
+infodir        = @infodir@
+libdir         = @libdir@
+libexecdir     = @libexecdir@
+localstatedir  = @localstatedir@
+mandir         = @mandir@
+prefix         = @prefix@
+runstatedir    = @runstatedir@
+sbindir        = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir     = @sysconfdir@
+
+
+#
+# Vars derived (mostly) from tclConfig.sh. These may be reliably
+# used from the extension makefile.
+#
+TCLSH             = @TCLSH_CMD@
+TCL_CONFIG_SH     = @TCL_CONFIG_SH@
+TCL_EXEC_PREFIX   = @TCL_EXEC_PREFIX@
+TCL_INCLUDE_SPEC  = @TCL_INCLUDE_SPEC@
+TCL_LIBS          = @TCL_LIBS@
+TCL_LIB_SPEC      = @TCL_LIB_SPEC@
+TCL_MAJOR_VERSION = @TCL_MAJOR_VERSION@
+TCL_MINOR_VERSION = @TCL_MINOR_VERSION@
+TCL_PATCH_LEVEL   = @TCL_PATCH_LEVEL@
+TCL_PREFIX        = @TCL_PREFIX@
+TCL_SHLIB_SUFFIX  = @TCL_SHLIB_SUFFIX@
+TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
+TCL_VERSION       = @TCL_VERSION@
+TCLLIBDIR         = @TCLLIBDIR@
+
+#
+# CFLAGS.configure = CFLAGS as known at configure-time.
+#
+# This ordering is deliberate: flags populated via tcl's
+# [teaish-cflags-add] should preceed CFLAGS and CPPFLAGS (which
+# typically come from the ./configure command-line invocation).
+#
+CFLAGS.configure = @SH_CFLAGS@ @TEAISH_CFLAGS@ @CFLAGS@ @CPPFLAGS@ $(TCL_INCLUDE_SPEC)
+CFLAGS.configure += -DUSE_TCL_STUBS=@TEAISH_USE_STUBS@
+
+#
+# LDFLAGS.configure = LDFLAGS as known at configure-time.
+#
+# This ordering is deliberate: flags populated via tcl's
+# [teaish-ldflags-add] should precede LDFLAGS (which typically
+# comes from the ./configure command-line invocation).
+#
+LDFLAGS.configure = @TEAISH_LDFLAGS@ @LDFLAGS@
+
+#
+# Linker flags for linkhing a shared library.
+#
+LDFLAGS.shlib = @SH_LDFLAGS@
+
+#
+# The following tx.XYZ vars may be populated/modified by teaish.tcl
+# and/or teaish.make.
+#
+
+#
+# tx.src is the list of source or object files to include in the
+# (single) compiler/linker invocation. This will initially contain any
+# sources passed to [teaish-src-add], but may also be appended to by
+# teaish.make.
+#
+tx.src     = @TEAISH_EXT_SRC@
+
+#
+# tx.CFLAGS is typically set by teaish.make, whereas TEAISH_CFLAGS
+# gets set up via the configure script.
+#
+tx.CFLAGS  =
+tx.CPPFLAGS  =
+
+#
+# tx.LDFLAGS is typically set by teaish.make, whereas TEAISH_LDFLAGS
+# gets set up via the configure script.
+#
+tx.LDFLAGS =
+
+#
+# The list of 'dist' files may be appended to from teaish.make.in.
+# It can also be set up from teaish.tcl using [teaish-dist-add]
+# and/or [teaish-src-add -dist ...].
+#
+tx.dist.files = @TEAISH_DIST_FILES@
+
+#
+# The base name for a distribution tar/zip file.
+#
+tx.dist.basename = $(tx.name.dist)-$(tx.version)
+
+# List of deps which may trigger an auto-reconfigure.
+#
+teaish__autogen.deps = \
+  $(tx.makefile.in) $(teaish.makefile.in) \
+  $(tx.tcl) \
+  @TEAISH_PKGINDEX_TCL_IN@ @TEAISH_TM_TCL_IN@ \
+  @AUTODEPS@
+
+@if TEAISH_MAKEFILE_IN
+$(tx.makefile): $(tx.makefile.in)
+@endif
+
+teaish.autoreconfig = \
+  @TEAISH_AUTORECONFIG@
+
+#
+# Problem: when more than one target can invoke TEAISH_AUTORECONFIG,
+# we can get parallel reconfigures running. Thus, targets which
+# may require reconfigure should depend on...
+#
+config.log: $(teaish__autogen.deps)
+	$(teaish.autoreconfig)
+# ^^^ We would love to skip this when running [dist]clean, but there's
+# no POSIX Make-portable way to do that. GNU Make can.
+.PHONY: reconfigure
+reconfigure:
+	$(teaish.autoreconfig)
+
+$(teaish.makefile): $(teaish__auto.def) $(teaish.makefile.in) \
+  @AUTODEPS@
+
+@if TEAISH_TESTER_TCL_IN
+@TEAISH_TESTER_TCL_IN@: $(teaish__autogen.deps)
+config.log: @TEAISH_TESTER_TCL_IN@
+@TEAISH_TESTER_TCL@:  @TEAISH_TESTER_TCL_IN@
+@endif
+@if TEAISH_TEST_TCL_IN
+@TEAISH_TEST_TCL_IN@: $(teaish__autogen.deps)
+config.log: @TEAISH_TEST_TCL_IN@
+@TEAISH_TEST_TCL@: @TEAISH_TEST_TCL_IN@
+@endif
+
+#
+# CC variant for compiling Tcl-using sources.
+#
+CC.tcl = \
+  $(CC) -o $@ $(CFLAGS.configure) $(CFLAGS) $(tx.CFLAGS) $(tx.CPPFLAGS)
+
+#
+# CC variant for linking $(tx.src) into an extension DLL.  Note that
+# $(tx.src) must come before $(LDFLAGS...) for linking to third-party
+# libs to work.
+#
+CC.dll = \
+  $(CC.tcl) $(tx.src) $(LDFLAGS.shlib) \
+    $(tx.LDFLAGS) $(LDFLAGS.configure) $(LDFLAGS) $(TCL_STUB_LIB_SPEC)
+
+@if TEAISH_ENABLE_DLL
+#
+# The rest of this makefile exists solely to support this brief
+# target: the extension shared lib.
+#
+$(tx.dll): $(tx.src) config.log
+	@if [ "x" = "x$(tx.src)" ]; then \
+		echo "Makefile var tx.src (source/object files) is empty" 1>&2; \
+		exit 1; \
+	fi
+	$(CC.dll)
+
+all: $(tx.dll)
+@endif # TEAISH_ENABLE_DLL
+
+tclsh: $(teaish.makefile) config.log
+	@{ echo "#!/bin/sh"; echo 'exec $(TCLSH) "$$@"'; } > $@
+	@chmod +x $@
+	@echo "Created $@"
+
+#
+# Run the generated test script.
+#
+.PHONY: test-pre test-prepre test-core test test-post test-extension
+test-extension: # this name is reserved for use by teaish.make[.in]
+@if TEAISH_ENABLE_DLL
+test-prepre: $(tx.dll)
+@endif
+@if TEAISH_TESTER_TCL
+teaish.tester.tcl = @TEAISH_TESTER_TCL@
+test-core.args = $(teaish.tester.tcl)
+@if TEAISH_ENABLE_DLL
+test-core.args += '$(tx.dll)' '$(tx.loadPrefix)'
+@else
+test-core.args += '' ''
+@endif
+test-core.args += @TEAISH_TESTUTIL_TCL@
+# Clients may pass additional args via test.args=...
+# and ::argv will be rewritten before the test script loads, to
+# remove $(test-core.args)
+test.args ?=
+test-core: test-pre
+	$(TCLSH) $(test-core.args) $(test.args)
+test-gdb: $(teaish.tester.tcl)
+	gdb --args $(TCLSH) $(test-core.args) $(test.args)
+test-vg.flags ?= --leak-check=full -v --show-reachable=yes --track-origins=yes
+test-vg: $(teaish.tester.tcl)
+	valgrind $(test-vg.flags) $(TCLSH) $(test-core.args) $(test.args)
+@else # !TEAISH_TESTER_TCL
+test-prepre:
+@endif # TEAISH_TESTER_TCL
+test-pre: test-prepre
+test-core: test-pre
+test-post: test-core
+test: test-post
+
+#
+# Cleanup rules...
+#
+#.PHONY: clean-pre clean-core clean-post clean-extension
+#
+clean-pre:
+clean-core: clean-pre
+	rm -f $(tx.dll8) $(tx.dll9) tclsh
+clean-post: clean-core
+clean: clean-post
+
+.PHONY: distclean-pre distclean-core distclean-post clean-extension
+distclean-pre: clean
+distclean-core: distclean-pre
+	rm -f Makefile
+	rm -f config.log config.defines.txt
+@if TEAISH_MAKEFILE_IN
+@if TEAISH_MAKEFILE
+	rm -f @TEAISH_MAKEFILE@
+@endif
+@endif
+@if TEAISH_TESTER_TCL_IN
+	rm -f $(teaish.tester.tcl)
+@endif
+@if TEAISH_PKGINDEX_TCL_IN
+	rm -f @TEAISH_PKGINDEX_TCL@
+@endif
+@if TEAISH_PKGINIT_TCL_IN
+	rm -f @TEAISH_PKGINIT_TCL@
+@endif
+@if TEAISH_TEST_TCL_IN
+	rm -f @TEAISH_TEST_TCL@
+@endif
+distclean-post: distclean-core
+distclean: distclean-post
+#
+# The (dist)clean-extension targets are reserved for use by
+# client-side teaish.make.
+#
+# Client code which wants to clean up extra stuff should do so by
+# adding their cleanup target (e.g. clean-extension) as a dependency
+# to the 'clean' target, like so:
+#
+# clean: distclean-extension
+# distclean: distclean-extension
+#
+distclean-extension:
+clean-extension:
+
+#
+# Installation rules...
+#
+@if TEAISH_ENABLE_INSTALL
+.PHONY: install-pre install-core install-post install-test install-prepre install-extension
+install-extension: # this name is reserved for use by teaish.make
+
+@if TEAISH_ENABLE_DLL
+install-prepre: $(tx.dll)
+@else
+install-prepre:
+@endif
+
+@if TEAISH_TM_TCL
+install-core.tmdir = $(DESTDIR)@TEAISH_TCL_TM_DIR@
+@endif
+
+install-pre: install-prepre
+install-core: install-pre
+	@if [ ! -d "$(DESTDIR)$(TCLLIBDIR)" ]; then \
+		set -x; $(INSTALL) -d "$(DESTDIR)$(TCLLIBDIR)"; \
+	fi
+# ^^^^ on some platforms, install -d fails if the target already exists.
+@if TEAISH_ENABLE_DLL
+	$(INSTALL) $(tx.dll) "$(DESTDIR)$(TCLLIBDIR)"
+@endif
+@if TEAISH_PKGINDEX_TCL
+	$(INSTALL.noexec) "@TEAISH_PKGINDEX_TCL@" "$(DESTDIR)$(TCLLIBDIR)"
+@endif
+@if TEAISH_PKGINIT_TCL
+	$(INSTALL.noexec) "@TEAISH_PKGINIT_TCL@" "$(DESTDIR)$(TCLLIBDIR)"
+@endif
+@if TEAISH_TM_TCL
+	@if [ ! -d "$(install-core.tmdir)" ]; then \
+		set -x; $(INSTALL) -d "$(install-core.tmdir)"; \
+	fi
+	$(INSTALL.noexec) "@TEAISH_TM_TCL@" "$(install-core.tmdir)/$(tx.tm.tgt)"
+@endif
+install-test: install-core
+	@echo "Post-install test of [package require $(tx.name.pkg) $(tx.version)]..."; \
+	set xtra=""; \
+	if [ x != "x$(DESTDIR)" ]; then \
+		xtra='set ::auto_path [linsert $$::auto_path 0 [file normalize $(DESTDIR)$(TCLLIBDIR)/..]];'; \
+	fi; \
+	if echo \
+		'set c 0; ' $$xtra \
+		'@TEAISH_POSTINST_PREREQUIRE@' \
+		'if {[catch {package require $(tx.name.pkg) $(tx.version)} xc]} {incr c};' \
+		'if {$$c && "" ne $$xc} {puts $$xc; puts "auto_path=$$::auto_path"};' \
+		'exit $$c' \
+		| $(TCLSH) ; then \
+		echo "passed"; \
+	else \
+		echo "FAILED"; \
+		exit 1; \
+	fi
+install-post: install-test
+install: install-post
+
+#
+# Uninstall rules...
+#
+.PHONY: uninstall uninstall-pre uninstall-core uninstall-post uninstall-extension
+uninstall-extension: # this name is reserved for use by teaish.make
+uninstall-pre:
+uninstall-core: uninstall-pre
+@if TEAISH_ENABLE_DLL
+	rm -fr "$(DESTDIR)$(TCLLIBDIR)"
+@endif
+@if TEAISH_TM_TCL
+	rm -f "$(DESTDIR)$(install-core.tmdir)/$(tx.tm.tgt)"
+@endif
+
+uninstall-post: uninstall-core
+	@echo "Uninstalled Tcl extension $(tx.name) $(tx.version)"
+uninstall: uninstall-post
+@endif # TEAISH_ENABLE_INSTALL
+
+@if TEAISH_MAKEFILE_IN
+Makefile:  $(tx.makefile.in)
+config.log: $(teaish.makefile.in)
+@endif
+
+#
+# Package archive generation ("dist") rules...
+#
+@if TEAISH_ENABLE_DIST
+@if BIN_TAR
+@if BIN_ZIP
+
+# When installing teaish as part of "make dist", we need to run
+# configure with similar flags to what we last configured with but we
+# must not pass on any extension-specific flags, as those won't be
+# recognized when running in --teaish-install mode, causing
+# the sub-configure to fail.
+dist.flags = --with-tclsh=$(TCLSH)
+dist.reconfig = $(teaish.dir)/configure $(tx.dist.reconfig-flags) $(dist.flags)
+
+# Temp dir for dist.zip. Must be different than dist.tgz or else
+# parallel builds may hose the dist.
+teaish__dist.tmp.zip = teaish__dist_zip
+#
+# Make a distribution zip file...
+#
+dist.zip = $(tx.dist.basename).zip
+.PHONY: dist.zip dist.zip-core dist.zip-post
+#dist.zip-pre:
+# We apparently can't add a pre-hook here, else "make dist" rebuilds
+# the archive each time it's run.
+$(dist.zip): $(tx.dist.files)
+	@rm -fr $(teaish__dist.tmp.zip)
+	@mkdir -p $(teaish__dist.tmp.zip)/$(tx.dist.basename)
+	@tar cf $(teaish__dist.tmp.zip)/tmp.tar $(tx.dist.files)
+	@tar xf $(teaish__dist.tmp.zip)/tmp.tar -C $(teaish__dist.tmp.zip)/$(tx.dist.basename)
+@if TEAISH_DIST_FULL
+	@$(dist.reconfig) \
+		--teaish-install=$(teaish__dist.tmp.zip)/$(tx.dist.basename) \
+		--t-e-d=$(teaish__dist.tmp.zip)/$(tx.dist.basename) >/dev/null
+@endif
+	@rm -f $(tx.dist.basename)/tmp.tar $(dist.zip)
+	@cd $(teaish__dist.tmp.zip) && zip -q -r ../$(dist.zip) $(tx.dist.basename)
+	@rm -fr $(teaish__dist.tmp.zip)
+	@ls -la $(dist.zip)
+dist.zip-core: $(dist.zip)
+dist.zip-post: dist.zip-core
+dist.zip: dist.zip-post
+dist: dist.zip
+undist-zip:
+	rm -f $(dist.zip)
+undist: undist-zip
+@endif #BIN_ZIP
+
+#
+# Make a distribution tarball...
+#
+teaish__dist.tmp.tgz = teaish__dist_tgz
+dist.tgz = $(tx.dist.basename).tar.gz
+.PHONY: dist.tgz dist.tgz-core dist.tgz-post
+# dist.tgz-pre:
+# see notes in dist.zip
+$(dist.tgz): $(tx.dist.files)
+	@rm -fr $(teaish__dist.tmp.tgz)
+	@mkdir -p $(teaish__dist.tmp.tgz)/$(tx.dist.basename)
+	@tar cf $(teaish__dist.tmp.tgz)/tmp.tar $(tx.dist.files)
+	@tar xf $(teaish__dist.tmp.tgz)/tmp.tar -C $(teaish__dist.tmp.tgz)/$(tx.dist.basename)
+@if TEAISH_DIST_FULL
+	@rm -f $(teaish__dist.tmp.tgz)/$(tx.dist.basename)/pkgIndex.tcl.in; # kludge
+	@$(dist.reconfig) \
+		--teaish-install=$(teaish__dist.tmp.tgz)/$(tx.dist.basename) \
+		--t-e-d=$(teaish__dist.tmp.zip)/$(tx.dist.basename) >/dev/null
+@endif
+	@rm -f $(tx.dist.basename)/tmp.tar $(dist.tgz)
+	@cd $(teaish__dist.tmp.tgz) && tar czf ../$(dist.tgz) $(tx.dist.basename)
+	@rm -fr $(teaish__dist.tmp.tgz)
+	@ls -la $(dist.tgz)
+dist.tgz-core: $(dist.tgz)
+dist.tgz-post: dist.tgz-core
+dist.tgz: dist.tgz-post
+dist: dist.tgz
+undist-tgz:
+	rm -f $(dist.tgz)
+undist: undist-tgz
+@else #!BIN_TAR
+dist:
+	@echo "The dist rules require tar, which configure did not find." 1>&2; exit 1
+@endif #BIN_TAR
+@else #!TEAISH_ENABLE_DIST
+undist:
+dist:
+@if TEAISH_OUT_OF_EXT_TREE
+	@echo "'dist' can only be used from an extension's home dir" 1>&2; \
+	echo "In this case: @TEAISH_EXT_DIR@" 1>&2; exit 1
+@endif
+@endif #TEAISH_ENABLE_DIST
+
+Makefile: @TEAISH_TCL@
+
+@if TEAISH_MAKEFILE_CODE
+#
+# TEAISH_MAKEFILE_CODE may contain literal makefile code, which
+# gets pasted verbatim here. Either [define TEAISH_MAKEFILE_CODE
+# ...] or use [teaish-make-add] to incrementally build up this
+# content.
+#
+# <TEAISH_MAKEFILE_CODE>
+@TEAISH_MAKEFILE_CODE@
+# </TEAISH_MAKEFILE_CODE>
+@endif
+
+@if TEAISH_MAKEFILE
+#
+# TEAISH_MAKEFILE[_IN] defines any extension-specific state this file
+# needs.
+#
+# It must set the following vars if they're not already accounted for
+# via teaish.tcl.
+#
+# - tx.src = list of the extension's source files, being sure to
+#   prefix each with $(tx.dir) (if it's in the same dir as the
+#   extension) so that out-of-tree builds can find them.  Optionally,
+#   [define] TEAISH_EXT_SRC or pass them to [teaish-src-add].
+#
+# It may optionally set the following vars:
+#
+# - tx.CFLAGS = CFLAGS/CPPFLAGS. Optionally, [define] TEAISH_CFLAGS
+#   or pass them to [teaish-cflags-add].
+#
+# - tx.LDFLAGS = LDFLAGS. Optionally, [define] TEAISH_LDFLAGS or
+#   pass them to [teaish-ldflags-add].
+#
+# It may optionally hook into various targets as documented in
+# /doc/extensions.md in the canonical teaish source tree.
+#
+# Interestingly, we don't have to pre-filter teaish.makefile.in - we
+# can just @include it here. That skips its teaish-specific validation
+# though. Hmm.
+#
+# <TEAISH_MAKEFILE>
+Makefile: @TEAISH_MAKEFILE@
+@include @TEAISH_MAKEFILE@
+# </TEAISH_MAKEFILE>
+@endif