# Makefile.in --
#
#	This file is a Makefile for Tclxml 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) 2007-2008 Explain/Packaged Press.
# Copyright (c) 2004 Zveno Pty Ltd.
# Copyright (c) 2002 ActiveState SRL.
# Copyright (c) 1999 Scriptics Corporation.
#
# 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.22 2005/05/20 12:02:01 balls Exp $

#========================================================================
# 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_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_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@

XML2_VERSION	= @XML2_VERSION@
XML2_PREFIX	= @XML2_PREFIX@
XML2_CFLAGS	= @XML2_CFLAGS@
XML2_LIBS	= @XML2_LIBS@

XSLT_VERSION	= @XSLT_VERSION@
XSLT_PREFIX	= @XSLT_PREFIX@
XSLT_LIBS	= @XSLT_LIBS@
XSLT_CFLAGS	= @XSLT_CFLAGS@

XML_STATIC      = @XML_STATIC@
FIX_LIB         = @FIX_LIB@

#========================================================================
# "PKG_LIB_FILE" refers to the library (dynamic or static as per
# configuration options) composed of the named objects.
#========================================================================

lib_BINARIES    = $(PKG_LIB_FILE) $(PKG_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@
datarootdir     = @datarootdir@

DESTDIR		=

PKG_DIR		= $(PACKAGE_NAME)$(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_NAME	= @PACKAGE_NAME@
PACKAGE_VERSION	= @PACKAGE_VERSION@
CC		= @CC@
CFLAGS_DEFAULT  = @CFLAGS_DEFAULT@
CFLAGS_WARNING  = @CFLAGS_WARNING@
EXEEXT          = @EXEEXT@
LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
MAKE_LIB        = @MAKE_LIB@
MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
MAKE_STATIC_LIB = @MAKE_STATIC_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      = $(CURDIR)/debian/tmp/usr/lib/Tclxml3.3
TCLSH_ENV	= TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \
		  @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
		  PATH="$(EXTRA_PATH):$(PATH)" \
		  TCLLIBPATH="$(TCLLIBPATH)"
#                 TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library`

TCLSH_PROG	= @TCLSH_PROG@
TCLSH		= $(TCLSH_ENV) $(TCLSH_PROG)

SHARED_BUILD	= @SHARED_BUILD@

INCLUDES	= @PKG_INCLUDES@ @TCL_INCLUDES@
#INCLUDES       = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@

PKG_CFLAGS	= @PKG_CFLAGS@ $(XML2_CFLAGS) $(XSLT_CFLAGS)

# TCL_DEFS is not strictly need here, but if you remove it, then you
# must make sure that configure.in 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 include/tclxml/tclxml.h
CLEANFILES	= @CLEANFILES@

CPPFLAGS	= @CPPFLAGS@
LIBS		= @PKG_LIBS@ @LIBS@ @XML2_LIBS@ @XSLT_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.
#========================================================================

# Do not build the documentation by default, since it requires
# additional dependencies that may not be installed.

all: binaries libraries

#========================================================================
# 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:
	-$(TCLSH) doc/transform.tcl doc/tclxml.xml doc/html.xsl doc/tclxml.html
	-$(TCLSH) doc/transform.tcl doc/tclxml.xml doc/nroff.xsl doc/tclxml.n
	-$(TCLSH) doc/transform.tcl doc/tcldom.xml doc/html.xsl doc/tcldom.html
	-$(TCLSH) doc/transform.tcl doc/tcldom.xml doc/nroff.xsl doc/tcldom.n
	-$(TCLSH) doc/transform.tcl doc/tclxslt.xml doc/html.xsl doc/tclxslt.html
	-$(TCLSH) doc/transform.tcl doc/tclxslt.xml doc/nroff.xsl doc/tclxslt.n
	-$(TCLSH) doc/transform.tcl doc/README.xml doc/html.xsl README.html
	-$(TCLSH) doc/transform.tcl doc/README.xml doc/txt.xsl README

# Do not install the documentation by default,
# since it may not have been built (see above).

install: all install-binaries install-libraries

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.
# The list=...; for p in $$list handles the empty list case x-platform.
#========================================================================

install-libraries: libraries
	@mkdir -p $(DESTDIR)$(includedir)/tclxml
	@echo "Installing header files in $(DESTDIR)$(includedir)/tclxml"
	@list='$(PKG_HEADERS)'; for i in $$list; do \
	    echo "Installing $(srcdir)/$$i" ; \
	    $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir)/tclxml ; \
	done;
	@echo "libraries 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)"
	@list='$(srcdir)/doc/*.n'; for i in $$list; 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 ./$(Tclxml_LIB_FILE)' \
#		-testdir $(srcdir)/tea.tests

test: test-tclxml test-tcldom test-tclxslt

test-tclxml:
	(cd $(srcdir)/tests/tclxml; $(TCLSH) all.tcl)

test-tcldom:
	(cd $(srcdir)/tests/tcldom; $(TCLSH) all.tcl)

test-tclxslt:
	(cd $(srcdir)/tests/tclxslt; $(TCLSH) all.tcl)

shell: binaries libraries
	@$(TCLSH) $(SCRIPT)

gdb:
	$(TCLSH_ENV) gdb $(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)
	$(FIX_LIB) $(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:
#
# Tclxml.$(OBJEXT): $(srcdir)/generic/Tclxml.c
# 	$(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/Tclxml.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

.c.@OBJEXT@:
	$(COMPILE) -c `@CYGPATH@ $<` -o $@

#========================================================================
# 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

	for i in $(srcdir)/*.[ch]; do \
	    if [ -f $$i ]; then \
	        cp -p $$i $(DIST_DIR)/ ; \
	    fi; \
	done;

	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)

release:
	autoconf

#========================================================================
# 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; \
	    stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
	    if test "x$$stub" = "xstub"; then \
	    echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \
	    $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \
	    else \
	    echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \
	    $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \
	    fi; \
	    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 \
	    s=`basename $$p`; \
	    echo " Install $$p $(DESTDIR)$(pkglibdir)/$$s"; \
	    $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkglibdir)/$$s; \
	  fi; \
	done
	$(INSTALL_DATA) TclxmlConfig.sh $(DESTDIR)$(libdir)
	$(FIX_LIB) $(DESTDIR)$(pkglibdir)/$(PKG_LIB_FILE)

#========================================================================
# 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='$(PKG_TCL_SOURCES)'; for p in $$list; do \
	  p=`basenme $$p`; \
	  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)	\
		$(srcdir)/tclxml.decls

#========================================================================
#
# Target to check that all exported functions have an entry in the stubs
# tables.
#
#========================================================================

Tclxml_DECLS = \
	$(srcdir)/tclxml.decls

checkstubs:
	-@for i in `nm -p $(Tclxml_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \
		| sort -n`; do \
		match=0; \
		for j in $(Tclxml_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:
