mirror of
https://github.com/tursodatabase/libsql.git
synced 2024-12-15 20:20:20 +00:00
476 lines
17 KiB
Makefile
476 lines
17 KiB
Makefile
# Makefile.in --
|
|
#
|
|
# This file is a Makefile for Sample TEA Extension. If it has the name
|
|
# "Makefile.in" then it is a template for a Makefile; to generate the
|
|
# actual Makefile, run "./configure", which is a configuration script
|
|
# generated by the "autoconf" program (constructs like "@foo@" will get
|
|
# replaced in the actual Makefile.
|
|
#
|
|
# Copyright (c) 1999 Scriptics Corporation.
|
|
# Copyright (c) 2002-2005 ActiveState Corporation.
|
|
#
|
|
# See the file "license.terms" for information on usage and redistribution
|
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
|
|
#========================================================================
|
|
# Add additional lines to handle any additional AC_SUBST cases that
|
|
# have been added in a customized configure script.
|
|
#========================================================================
|
|
|
|
#SAMPLE_NEW_VAR = @SAMPLE_NEW_VAR@
|
|
|
|
#========================================================================
|
|
# Nothing of the variables below this line should need to be changed.
|
|
# Please check the TARGETS section below to make sure the make targets
|
|
# are correct.
|
|
#========================================================================
|
|
|
|
#========================================================================
|
|
# The names of the source files is defined in the configure script.
|
|
# The object files are used for linking into the final library.
|
|
# This will be used when a dist target is added to the Makefile.
|
|
# It is not important to specify the directory, as long as it is the
|
|
# $(srcdir) or in the generic, win or unix subdirectory.
|
|
#========================================================================
|
|
|
|
PKG_SOURCES = @PKG_SOURCES@
|
|
PKG_OBJECTS = @PKG_OBJECTS@
|
|
|
|
PKG_STUB_SOURCES = @PKG_STUB_SOURCES@
|
|
PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
|
|
|
|
#========================================================================
|
|
# PKG_TCL_SOURCES identifies Tcl runtime files that are associated with
|
|
# this package that need to be installed, if any.
|
|
#========================================================================
|
|
|
|
PKG_TCL_SOURCES = @PKG_TCL_SOURCES@
|
|
|
|
#========================================================================
|
|
# This is a list of public header files to be installed, if any.
|
|
#========================================================================
|
|
|
|
PKG_HEADERS = @PKG_HEADERS@
|
|
|
|
#========================================================================
|
|
# "PKG_LIB_FILE" refers to the library (dynamic or static as per
|
|
# configuration options) composed of the named objects.
|
|
#========================================================================
|
|
|
|
PKG_LIB_FILE = @PKG_LIB_FILE@
|
|
PKG_LIB_FILE8 = @PKG_LIB_FILE8@
|
|
PKG_LIB_FILE9 = @PKG_LIB_FILE9@
|
|
PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@
|
|
|
|
lib_BINARIES = $(PKG_LIB_FILE)
|
|
BINARIES = $(lib_BINARIES)
|
|
|
|
SHELL = @SHELL@
|
|
|
|
srcdir = @srcdir@
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
includedir = @includedir@
|
|
datarootdir = @datarootdir@
|
|
runstatedir = @runstatedir@
|
|
datadir = @datadir@
|
|
mandir = @mandir@
|
|
|
|
DESTDIR =
|
|
|
|
PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION)
|
|
pkgdatadir = $(datadir)/$(PKG_DIR)
|
|
pkglibdir = $(libdir)/$(PKG_DIR)
|
|
pkgincludedir = $(includedir)/$(PKG_DIR)
|
|
|
|
top_builddir = @abs_top_builddir@
|
|
|
|
INSTALL_OPTIONS =
|
|
INSTALL = @INSTALL@ $(INSTALL_OPTIONS)
|
|
INSTALL_DATA_DIR = @INSTALL_DATA_DIR@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
INSTALL_LIBRARY = @INSTALL_LIBRARY@
|
|
|
|
PACKAGE_NAME = @PACKAGE_NAME@
|
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
CC = @CC@
|
|
CCLD = @CCLD@
|
|
CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
|
|
CFLAGS_WARNING = @CFLAGS_WARNING@
|
|
EXEEXT = @EXEEXT@
|
|
LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
|
|
MAKE_LIB = @MAKE_LIB@
|
|
MAKE_STUB_LIB = @MAKE_STUB_LIB@
|
|
OBJEXT = @OBJEXT@
|
|
RANLIB = @RANLIB@
|
|
RANLIB_STUB = @RANLIB_STUB@
|
|
SHLIB_CFLAGS = @SHLIB_CFLAGS@
|
|
SHLIB_LD = @SHLIB_LD@
|
|
SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
|
|
STLIB_LD = @STLIB_LD@
|
|
#TCL_DEFS = @TCL_DEFS@
|
|
TCL_BIN_DIR = @TCL_BIN_DIR@
|
|
TCL_SRC_DIR = @TCL_SRC_DIR@
|
|
#TK_BIN_DIR = @TK_BIN_DIR@
|
|
#TK_SRC_DIR = @TK_SRC_DIR@
|
|
|
|
# Not used, but retained for reference of what libs Tcl required
|
|
#TCL_LIBS = @TCL_LIBS@
|
|
|
|
#========================================================================
|
|
# TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our
|
|
# package without installing. The other environment variables allow us
|
|
# to test against an uninstalled Tcl. Add special env vars that you
|
|
# require for testing here (like TCLX_LIBRARY).
|
|
#========================================================================
|
|
|
|
EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR)
|
|
#EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR):$(TK_BIN_DIR)
|
|
TCLLIBPATH = $(top_builddir)
|
|
TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library`
|
|
PKG_ENV = @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
|
|
PATH="$(EXTRA_PATH):$(PATH)" \
|
|
TCLLIBPATH="$(TCLLIBPATH)"
|
|
|
|
TCLSH_PROG = @TCLSH_PROG@
|
|
TCLSH = $(TCLSH_ENV) $(PKG_ENV) $(TCLSH_PROG)
|
|
|
|
#WISH_ENV = TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library`
|
|
#WISH_PROG = @WISH_PROG@
|
|
#WISH = $(TCLSH_ENV) $(WISH_ENV) $(PKG_ENV) $(WISH_PROG)
|
|
|
|
SHARED_BUILD = @SHARED_BUILD@
|
|
|
|
INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ -I. -I$(srcdir)/..
|
|
#INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@
|
|
|
|
PKG_CFLAGS = @PKG_CFLAGS@
|
|
|
|
# TCL_DEFS is not strictly need here, but if you remove it, then you
|
|
# must make sure that configure.ac checks for the necessary components
|
|
# that your library may use. TCL_DEFS can actually be a problem if
|
|
# you do not compile with a similar machine setup as the Tcl core was
|
|
# compiled with.
|
|
#DEFS = $(TCL_DEFS) @DEFS@ $(PKG_CFLAGS)
|
|
DEFS = @DEFS@ $(PKG_CFLAGS)
|
|
|
|
# Move pkgIndex.tcl to 'BINARIES' var if it is generated in the Makefile
|
|
CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl
|
|
CLEANFILES = @CLEANFILES@
|
|
|
|
CPPFLAGS = @CPPFLAGS@
|
|
LIBS = @PKG_LIBS@ @LIBS@
|
|
AR = @AR@
|
|
CFLAGS = @CFLAGS@
|
|
LDFLAGS = @LDFLAGS@
|
|
LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
|
|
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) \
|
|
$(CFLAGS_DEFAULT) $(CFLAGS_WARNING) $(SHLIB_CFLAGS) $(CFLAGS)
|
|
|
|
GDB = gdb
|
|
VALGRIND = valgrind
|
|
VALGRINDARGS = --tool=memcheck --num-callers=8 --leak-resolution=high \
|
|
--leak-check=yes --show-reachable=yes -v
|
|
|
|
.SUFFIXES: .c .$(OBJEXT)
|
|
|
|
#========================================================================
|
|
# Start of user-definable TARGETS section
|
|
#========================================================================
|
|
|
|
#========================================================================
|
|
# TEA TARGETS. Please note that the "libraries:" target refers to platform
|
|
# independent files, and the "binaries:" target includes executable programs and
|
|
# platform-dependent libraries. Modify these targets so that they install
|
|
# the various pieces of your package. The make and install rules
|
|
# for the BINARIES that you specified above have already been done.
|
|
#========================================================================
|
|
|
|
all: binaries libraries doc
|
|
|
|
#========================================================================
|
|
# The binaries target builds executable programs, Windows .dll's, unix
|
|
# shared/static libraries, and any other platform-dependent files.
|
|
# The list of targets to build for "binaries:" is specified at the top
|
|
# of the Makefile, in the "BINARIES" variable.
|
|
#========================================================================
|
|
|
|
binaries: $(BINARIES)
|
|
|
|
libraries:
|
|
|
|
#========================================================================
|
|
# Your doc target should differentiate from doc builds (by the developer)
|
|
# and doc installs (see install-doc), which just install the docs on the
|
|
# end user machine when building from source.
|
|
#========================================================================
|
|
|
|
doc:
|
|
@echo "If you have documentation to create, place the commands to"
|
|
@echo "build the docs in the 'doc:' target. For example:"
|
|
@echo " xml2nroff sample.xml > sample.n"
|
|
@echo " xml2html sample.xml > sample.html"
|
|
|
|
install: all install-binaries install-libraries install-doc
|
|
|
|
install-binaries: binaries install-lib-binaries install-bin-binaries
|
|
|
|
#========================================================================
|
|
# This rule installs platform-independent files, such as header files.
|
|
# The list=...; for p in $$list handles the empty list case x-platform.
|
|
#========================================================================
|
|
|
|
install-libraries: libraries
|
|
@$(INSTALL_DATA_DIR) "$(DESTDIR)$(includedir)"
|
|
@echo "Installing header files in $(DESTDIR)$(includedir)"
|
|
@list='$(PKG_HEADERS)'; for i in $$list; do \
|
|
echo "Installing $(srcdir)/$$i" ; \
|
|
$(INSTALL_DATA) $(srcdir)/$$i "$(DESTDIR)$(includedir)" ; \
|
|
done;
|
|
|
|
#========================================================================
|
|
# Install documentation. Unix manpages should go in the $(mandir)
|
|
# directory.
|
|
#========================================================================
|
|
|
|
install-doc: doc
|
|
@$(INSTALL_DATA_DIR) "$(DESTDIR)$(mandir)/mann"
|
|
@echo "Installing documentation in $(DESTDIR)$(mandir)"
|
|
@list='$(srcdir)/doc/*.n'; for i in $$list; do \
|
|
echo "Installing $$i"; \
|
|
$(INSTALL_DATA) $$i "$(DESTDIR)$(mandir)/mann" ; \
|
|
done
|
|
|
|
test: binaries libraries
|
|
@echo "SQLite TEA distribution does not include tests"
|
|
|
|
shell: binaries libraries
|
|
@$(TCLSH) $(SCRIPT)
|
|
|
|
gdb:
|
|
$(TCLSH_ENV) $(PKG_ENV) $(GDB) $(TCLSH_PROG) $(SCRIPT)
|
|
|
|
gdb-test: binaries libraries
|
|
$(TCLSH_ENV) $(PKG_ENV) $(GDB) \
|
|
--args $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \
|
|
$(TESTFLAGS) -singleproc 1 \
|
|
-load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \
|
|
[list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)]]"
|
|
|
|
valgrind: binaries libraries
|
|
$(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) \
|
|
`@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS)
|
|
|
|
valgrindshell: binaries libraries
|
|
$(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) $(SCRIPT)
|
|
|
|
depend:
|
|
|
|
#========================================================================
|
|
# $(PKG_LIB_FILE) should be listed as part of the BINARIES variable
|
|
# mentioned above. That will ensure that this target is built when you
|
|
# run "make binaries".
|
|
#
|
|
# The $(PKG_OBJECTS) objects are created and linked into the final
|
|
# library. In most cases these object files will correspond to the
|
|
# source files above.
|
|
#========================================================================
|
|
|
|
$(PKG_LIB_FILE): $(PKG_OBJECTS)
|
|
-rm -f $(PKG_LIB_FILE)
|
|
${MAKE_LIB}
|
|
$(RANLIB) $(PKG_LIB_FILE)
|
|
|
|
$(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS)
|
|
-rm -f $(PKG_STUB_LIB_FILE)
|
|
${MAKE_STUB_LIB}
|
|
$(RANLIB_STUB) $(PKG_STUB_LIB_FILE)
|
|
|
|
#========================================================================
|
|
# We need to enumerate the list of .c to .o lines here.
|
|
#
|
|
# In the following lines, $(srcdir) refers to the toplevel directory
|
|
# containing your extension. If your sources are in a subdirectory,
|
|
# you will have to modify the paths to reflect this:
|
|
#
|
|
# sample.$(OBJEXT): $(srcdir)/generic/sample.c
|
|
# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/sample.c` -o $@
|
|
#
|
|
# Setting the VPATH variable to a list of paths will cause the makefile
|
|
# to look into these paths when resolving .c to .obj dependencies.
|
|
# As necessary, add $(srcdir):$(srcdir)/compat:....
|
|
#========================================================================
|
|
|
|
VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win:$(srcdir)/macosx
|
|
|
|
.c.@OBJEXT@:
|
|
$(COMPILE) -c `@CYGPATH@ $<` -o $@
|
|
|
|
tclsample.@OBJEXT@: sampleUuid.h
|
|
|
|
$(srcdir)/manifest.uuid:
|
|
printf "git-" >$(srcdir)/manifest.uuid
|
|
(cd $(srcdir); git rev-parse HEAD >>$(srcdir)/manifest.uuid || \
|
|
(printf "svn-r" >$(srcdir)/manifest.uuid ; \
|
|
svn info --show-item last-changed-revision >>$(srcdir)/manifest.uuid) || \
|
|
printf "unknown" >$(srcdir)/manifest.uuid)
|
|
|
|
sampleUuid.h: $(srcdir)/manifest.uuid
|
|
echo "#define SAMPLE_VERSION_UUID \\" >$@
|
|
cat $(srcdir)/manifest.uuid >>$@
|
|
echo "" >>$@
|
|
|
|
#========================================================================
|
|
# Distribution creation
|
|
# You may need to tweak this target to make it work correctly.
|
|
#========================================================================
|
|
|
|
#COMPRESS = tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar
|
|
COMPRESS = tar zcvf $(PKG_DIR).tar.gz $(PKG_DIR)
|
|
DIST_ROOT = /tmp/dist
|
|
DIST_DIR = $(DIST_ROOT)/$(PKG_DIR)
|
|
|
|
DIST_INSTALL_DATA = CPPROG='cp -p' $(INSTALL) -m 644
|
|
DIST_INSTALL_SCRIPT = CPPROG='cp -p' $(INSTALL) -m 755
|
|
|
|
dist-clean:
|
|
rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.*
|
|
|
|
dist: dist-clean $(srcdir)/manifest.uuid
|
|
$(INSTALL_DATA_DIR) $(DIST_DIR)
|
|
|
|
# TEA files
|
|
$(DIST_INSTALL_DATA) $(srcdir)/Makefile.in \
|
|
$(srcdir)/aclocal.m4 $(srcdir)/configure.ac \
|
|
$(DIST_DIR)/
|
|
$(DIST_INSTALL_SCRIPT) $(srcdir)/configure $(DIST_DIR)/
|
|
|
|
$(INSTALL_DATA_DIR) $(DIST_DIR)/tclconfig
|
|
$(DIST_INSTALL_DATA) $(srcdir)/tclconfig/README.txt \
|
|
$(srcdir)/manifest.uuid \
|
|
$(srcdir)/tclconfig/tcl.m4 $(srcdir)/tclconfig/install-sh \
|
|
$(DIST_DIR)/tclconfig/
|
|
|
|
# Extension files
|
|
$(DIST_INSTALL_DATA) \
|
|
$(srcdir)/ChangeLog \
|
|
$(srcdir)/README.sha \
|
|
$(srcdir)/license.terms \
|
|
$(srcdir)/README \
|
|
$(srcdir)/pkgIndex.tcl.in \
|
|
$(DIST_DIR)/
|
|
|
|
list='demos doc generic library macosx tests unix win'; \
|
|
for p in $$list; do \
|
|
if test -d $(srcdir)/$$p ; then \
|
|
$(INSTALL_DATA_DIR) $(DIST_DIR)/$$p; \
|
|
$(DIST_INSTALL_DATA) $(srcdir)/$$p/* $(DIST_DIR)/$$p/; \
|
|
fi; \
|
|
done
|
|
|
|
(cd $(DIST_ROOT); $(COMPRESS);)
|
|
|
|
#========================================================================
|
|
# End of user-definable section
|
|
#========================================================================
|
|
|
|
#========================================================================
|
|
# Don't modify the file to clean here. Instead, set the "CLEANFILES"
|
|
# variable in configure.ac
|
|
#========================================================================
|
|
|
|
clean:
|
|
-test -z "$(BINARIES)" || rm -f $(BINARIES)
|
|
-rm -f *.$(OBJEXT) core *.core
|
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
|
|
|
distclean: clean
|
|
-rm -f *.tab.c
|
|
-rm -f $(CONFIG_CLEAN_FILES)
|
|
-rm -f config.cache config.log config.status
|
|
|
|
#========================================================================
|
|
# Install binary object libraries. On Windows this includes both .dll and
|
|
# .lib files. Because the .lib files are not explicitly listed anywhere,
|
|
# we need to deduce their existence from the .dll file of the same name.
|
|
# Library files go into the lib directory.
|
|
# In addition, this will generate the pkgIndex.tcl
|
|
# file in the install location (assuming it can find a usable tclsh shell)
|
|
#
|
|
# You should not have to modify this target.
|
|
#========================================================================
|
|
|
|
install-lib-binaries: binaries
|
|
@$(INSTALL_DATA_DIR) "$(DESTDIR)$(pkglibdir)"
|
|
@list='$(lib_BINARIES)'; for p in $$list; do \
|
|
if test -f $$p; then \
|
|
echo " $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p"; \
|
|
$(INSTALL_LIBRARY) $$p "$(DESTDIR)$(pkglibdir)/$$p"; \
|
|
ext=`echo $$p|sed -e "s/.*\.//"`; \
|
|
if test "x$$ext" = "xdll"; then \
|
|
lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
|
|
if test -f $$lib; then \
|
|
echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \
|
|
$(INSTALL_DATA) $$lib "$(DESTDIR)$(pkglibdir)/$$lib"; \
|
|
fi; \
|
|
fi; \
|
|
fi; \
|
|
done
|
|
@list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
|
|
if test -f $(srcdir)/$$p; then \
|
|
destp=`basename $$p`; \
|
|
echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \
|
|
$(INSTALL_DATA) $(srcdir)/$$p "$(DESTDIR)$(pkglibdir)/$$destp"; \
|
|
fi; \
|
|
done
|
|
@if test "x$(SHARED_BUILD)" = "x1"; then \
|
|
echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \
|
|
$(INSTALL_DATA) pkgIndex.tcl "$(DESTDIR)$(pkglibdir)"; \
|
|
fi
|
|
|
|
#========================================================================
|
|
# Install binary executables (e.g. .exe files and dependent .dll files)
|
|
# This is for files that must go in the bin directory (located next to
|
|
# wish and tclsh), like dependent .dll files on Windows.
|
|
#
|
|
# You should not have to modify this target, except to define bin_BINARIES
|
|
# above if necessary.
|
|
#========================================================================
|
|
|
|
install-bin-binaries: binaries
|
|
@$(INSTALL_DATA_DIR) "$(DESTDIR)$(bindir)"
|
|
@list='$(bin_BINARIES)'; for p in $$list; do \
|
|
if test -f $$p; then \
|
|
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \
|
|
$(INSTALL_PROGRAM) $$p "$(DESTDIR)$(bindir)/$$p"; \
|
|
fi; \
|
|
done
|
|
|
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
cd $(top_builddir) \
|
|
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
|
|
|
uninstall-binaries:
|
|
list='$(lib_BINARIES)'; for p in $$list; do \
|
|
rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
|
|
done
|
|
list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
|
|
p=`basename $$p`; \
|
|
rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
|
|
done
|
|
list='$(bin_BINARIES)'; for p in $$list; do \
|
|
rm -f "$(DESTDIR)$(bindir)/$$p"; \
|
|
done
|
|
|
|
.PHONY: all binaries clean depend distclean doc install libraries test
|
|
.PHONY: gdb gdb-test valgrind valgrindshell
|
|
|
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
.NOEXPORT:
|