mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
559 lines
16 KiB
Makefile
559 lines
16 KiB
Makefile
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=1
|
|
|
|
#
|
|
# 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.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)
|
|
|
|
#
|
|
# 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
|