# Makefile.in --
#
# This file is a Makefile for Memchan 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 ActiveState SRL.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: Makefile.in,v 1.11 2002/08/23 18:04:38 andreas_kupries Exp $
#========================================================================
# Edit the following few lines when writing a new extension
#========================================================================
#========================================================================
# Enumerate the names of the source files included in this package.
# This will be used when a dist target is added to the Makefile.
# EXTRA_SOURCES will be replaced by WIN_SOURCES or UNIX_SOURCES, as is
# appropriate for your platform. It is not important to specify the
# directory, as long as it is the $(srcdir) or in the generic, win or
# unix subdirectory.
#========================================================================
Memchan_SOURCES = \
memchan.c \
init.c \
counter.c \
fifo.c \
fifo2.c \
null.c \
buf.c \
bufFix.c \
bufExt.c \
bufRange.c \
bufQueue.c \
bufStubInit.c \
bufStubLib.c \
@EXTRA_SOURCES@
WIN_SOURCES =
UNIX_SOURCES =
#========================================================================
# Identify the object files. This replaces .c with .$(OBJEXT) for all
# the named source files. These objects are created and linked into the
# final library. In these do not correspond directly to the source files
# above, you will need to enumerate the object files here.
# Normally we would use $(OBJEXT), but certain make executables won't do
# the extra macro in a macro conversion properly.
#
# "Memchan_LIB_FILE" refers to the library (dynamic or static as per
# configuration options) composed of the named objects.
#========================================================================
Memchan_OBJECTS = $(Memchan_SOURCES:.c=.@OBJEXT@)
Memchan_LIB_FILE= @Memchan_LIB_FILE@
Memchanstub_OBJECTS= bufStubLib.$(OBJEXT)
Memchanstub_LIB_FILE= @Memchanstub_LIB_FILE@
#========================================================================
# RUNTIME_SOURCES identifies Tcl runtime files that are associated with
# this package that need to be installed, if any.
#========================================================================
#RUNTIME_SOURCES =
#========================================================================
# This is a list of header files to be installed
#========================================================================
GENERIC_HDRS =
#========================================================================
# Add additional lines to handle any additional AC_SUBST cases that
# have been added to the configure script.
#========================================================================
#MEMCHAN_NEW_VAR = @MEMCHAN_NEW_VAR@
#========================================================================
# Nothing of the variables below this line need to be changed. Please
# check the TARGETS section below to make sure the make targets are
# correct.
#========================================================================
#========================================================================
# The variable "$(PACKAGE)_LIB_FILE" is the parameterized name of the
# library that we are building.
#========================================================================
lib_BINARIES = $($(PACKAGE)_LIB_FILE) $($(PACKAGE)stub_LIB_FILE)
BINARIES = $(lib_BINARIES)
SHELL = @SHELL@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
datadir = @datadir@
mandir = @mandir@
includedir = @includedir@
DESTDIR =
PKG_DIR = $(PACKAGE)$(VERSION)
pkgdatadir = $(datadir)/$(PKG_DIR)
pkglibdir = $(libdir)/$(PKG_DIR)
pkgincludedir = $(includedir)/$(PKG_DIR)
top_builddir = .
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
CC = @CC@
CFLAGS_DEBUG = @CFLAGS_DEBUG@
CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
CLEANFILES = @CLEANFILES@
EXEEXT = @EXEEXT@
LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
MAKE_LIB = @MAKE_LIB@
MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
OBJEXT = @OBJEXT@
RANLIB = @RANLIB@
SHLIB_CFLAGS = @SHLIB_CFLAGS@
SHLIB_LD = @SHLIB_LD@
SHLIB_LDFLAGS = @SHLIB_LDFLAGS@
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@
# This is necessary for packages that use private Tcl headers
#TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@
# 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)
TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \
LD_LIBRARY_PATH="$(EXTRA_PATH):$(LD_LIBRARY_PATH)" \
LIBPATH="$(EXTRA_PATH):${LIBPATH}" \
SHLIB_PATH="$(EXTRA_PATH):${SHLIB_PATH}" \
PATH="$(EXTRA_PATH):$(PATH)" \
TCLLIBPATH="$(top_builddir)"
TCLSH_PROG = @TCLSH_PROG@
TCLSH = $(TCLSH_ENV) $(TCLSH_PROG)
SHARED_BUILD = @SHARED_BUILD@
INCLUDES = @TCL_INCLUDES@
EXTRA_CFLAGS = $(MEM_DEBUG_FLAGS) @EXTRA_CFLAGS@
DEFS = $(TCL_DEFS) @DEFS@ $(EXTRA_CFLAGS)
CONFIG_CLEAN_FILES = Makefile
CPPFLAGS = @CPPFLAGS@
LIBS = @LIBS@
AR = ar
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
#========================================================================
# Start of user-definable TARGETS section
#========================================================================
#========================================================================
# TEA TARGETS. Please note that the "libraries:" target refers to platform
# independent files, and the "binaries:" target inclues 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) pkgIndex.tcl-hand
libraries:
doc:
if [ "x$(srcdir)" != "x." -a "x$(srcdir)" != "x`pwd`" ] ; then \
rm -rf tools htdocs ; \
cp -rf $(srcdir)/tools . ; \
cp -rf $(srcdir)/htdocs . ; \
rm -rf doc ; mkdir doc ; \
cp $(srcdir)/doc/*.man doc/ ; \
fi
cd doc ; ../tools/nroff_regen
# Currently no documentation to create, the HTML is part of the
# distribution.
# .................................................................
# @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
if test "x$(SHARED_BUILD)" = "x1"; then \
$(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \
fi
#========================================================================
# This rule installs platform-independent files, such as header files.
#========================================================================
install-libraries: libraries
@mkdir -p $(DESTDIR)$(includedir)
@echo "Installing header files in $(DESTDIR)$(includedir)"
# @for i in $(GENERIC_HDRS) ; do \
# echo "Installing $$i" ; \
# $(INSTALL_DATA) $$i $(DESTDIR)$(includedir) ; \
# done;
#========================================================================
# Install documentation. Unix manpages should go in the $(mandir)
# directory.
#========================================================================
install-doc: doc
@mkdir -p $(DESTDIR)$(mandir)/mann
@echo "Installing documentation in $(DESTDIR)$(mandir)"
@for i in doc/*.n; do \
echo "Installing $$i"; \
rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \
$(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \
done
testshell = $(TCLSH_PROG) $(srcdir)/testshell
#test: binaries libraries
# $(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS)
# $(testshell) \
# -load 'load ./$(Memchan_LIB_FILE)' \
# -testdir $(srcdir)/tea.tests
test: binaries libraries
echo load ./$(Memchan_LIB_FILE) \; cd $(srcdir)/tests \; source all | $(TCLSH) $(TESTFLAGS)
shell: binaries libraries
@$(TCLSH) $(SCRIPT)
gdb:
$(TCLSH_ENV) gdb $(TCLSH_PROG) $(SCRIPT)
depend:
#========================================================================
# $($(PACKAGE)_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 $($(PACKAGE)_OBJECTS) objects are created and linked into the final
# library. In most cases these object files will correspond to the
# source files above.
#========================================================================
$($(PACKAGE)_LIB_FILE): $($(PACKAGE)_OBJECTS)
-rm -f $($(PACKAGE)_LIB_FILE)
${MAKE_LIB}
$(RANLIB) $($(PACKAGE)_LIB_FILE)
$($(PACKAGE)stub_LIB_FILE): $($(PACKAGE)stub_OBJECTS)
$(AR) cr $@ $($(PACKAGE)stub_OBJECTS)
#========================================================================
# 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:
#
# Memchan.$(OBJEXT): $(srcdir)/generic/Memchan.c
# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/Memchan.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)/generic:$(srcdir)/unix:$(srcdir)/win
.c.$(OBJEXT):
$(COMPILE) -c `@CYGPATH@ $<` -o $@
#========================================================================
# Create the pkgIndex.tcl file.
# It is usually easiest to let Tcl do this for you with pkg_mkIndex, but
# you may find that you need to customize the package. If so, either
# modify the -hand version, or create a pkgIndex.tcl.in file and have
# the configure script output the pkgIndex.tcl by editing configure.in.
#========================================================================
pkgIndex.tcl:
( echo pkg_mkIndex . $($(PACKAGE)_LIB_FILE) \; exit; ) | $(TCLSH)
pkgIndex.tcl-hand:
(echo 'package ifneeded $(PACKAGE) $(VERSION) \
[list load [file join $$dir $($(PACKAGE)_LIB_FILE)]]'\
) > pkgIndex.tcl
#========================================================================
# 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 = gtar zcvf $(PKG_DIR).tar.gz $(PKG_DIR)
DIST_ROOT = /tmp/dist
DIST_DIR = $(DIST_ROOT)/$(PKG_DIR)
dist-clean:
rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.*
dist: dist-clean doc
mkdir -p $(DIST_DIR)
cp -p $(srcdir)/ChangeLog $(srcdir)/README* $(srcdir)/doc/license* \
$(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/*.in \
$(DIST_DIR)/
chmod 664 $(DIST_DIR)/Makefile.in $(DIST_DIR)/aclocal.m4
chmod 775 $(DIST_DIR)/configure $(DIST_DIR)/configure.in
mkdir $(DIST_DIR)/tclconfig
cp $(srcdir)/tclconfig/install-sh $(srcdir)/tclconfig/tcl.m4 \
$(DIST_DIR)/tclconfig/
chmod 664 $(DIST_DIR)/tclconfig/tcl.m4
chmod +x $(DIST_DIR)/tclconfig/install-sh
-list='htdocs/art demos generic library mac tests unix win tea.tests tools tools/rules'; \
for p in $$list; do \
if test -d $(srcdir)/$$p ; then \
mkdir -p $(DIST_DIR)/$$p; \
cp -p $(srcdir)/$$p/*.* $(srcdir)/$$p/* $(DIST_DIR)/$$p/; \
fi; \
done
-list='doc'; \
for p in $$list; do \
if test -d $$p ; then \
mkdir -p $(DIST_DIR)/$$p; \
cp -p $$p/*.* $$p/* $(DIST_DIR)/$$p/; \
fi; \
done
-mv $(DIST_DIR)/htdocs/art $(DIST_DIR)/doc/art
rm -rf $(DIST_DIR)/htdocs
(cd $(DIST_ROOT); $(COMPRESS);)
dist_orig:
rm -rf $(PKG_DIR)*
ls -d $(srcdir)/* > __FILES
mkdir $(PKG_DIR)
cp -rf `cat __FILES | grep -v __FILES` $(PKG_DIR)
rm __FILES
find $(PKG_DIR) -name CVS -prune -exec rm -rf {} \;
cd $(PKG_DIR) ; $(TCLSH_PROG) PREPARE
-tar cf - $(PKG_DIR) | gzip --best > $(PKG_DIR).tar.gz
-tar cf - $(PKG_DIR) | bzip2 > $(PKG_DIR).tar.bz2
-zip -r $(PKG_DIR).zip $(PKG_DIR)
rm -rf $(PKG_DIR)
#========================================================================
# End of user-definable section
#========================================================================
#========================================================================
# Don't modify the file to clean here. Instead, set the "CLEANFILES"
# variable in configure.in
#========================================================================
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:
@mkdir -p $(DESTDIR)$(pkglibdir)
@list='$(lib_BINARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \
echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \
$(RANLIB) $(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='$(RUNTIME_SOURCES)'; for p in $$list; do \
if test -f $(srcdir)/library/$$p; then \
echo " Install $$p $(DESTDIR)$(pkglibdir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/library/$$p $(DESTDIR)$(pkglibdir)/$$p; \
fi; \
done
#========================================================================
# 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:
@mkdir -p $(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
.SUFFIXES: .c .$(OBJEXT)
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='$(RUNTIME_SOURCES)'; for p in $$list; do \
rm -f $(DESTDIR)$(pkglibdir)/$$p; \
done
list='$(bin_BINARIES)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/$$p; \
done
#========================================================================
#
# Target to regenerate header files and stub files from the *.decls tables.
#
#========================================================================
genstubs:
$(TCLSH_PROG) \
$(srcdir)/tools/genStubs.tcl $(srcdir)/generic \
$(srcdir)/generic/buf.decls \
$(srcdir)/generic/bufInt.decls
#========================================================================
#
# Target to check that all exported functions have an entry in the stubs
# tables.
#
#========================================================================
Buf_DECLS = \
$(srcdir)/generic/buf.decls \
$(srcdir)/generic/bufInt.decls
checkstubs:
-@for i in `nm -p $(Memchan_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \
| sort -n`; do \
match=0; \
for j in $(Buf_DECLS); do \
if [ `grep -c $$i $$j` -gt 0 ]; then \
match=1; \
fi; \
done; \
if [ $$match -eq 0 ]; then echo $$i; fi \
done
.PHONY: all binaries clean depend distclean doc install libraries test
# 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:
syntax highlighted by Code2HTML, v. 0.9.1