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


#========================================================================
# Makefile variables
#========================================================================
HAVE_TCL_ONLY = @HAVE_TCL_ONLY@

ifeq ($(HAVE_TCL_ONLY),0)
PKG_SOURCES = @PKG_SOURCES@
PKG_OBJECTS = @PKG_OBJECTS@

PKG_STUB_SOURCES = @PKG_STUB_SOURCES@
PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
endif

PKG_TCL_SOURCES = @PKG_TCL_SOURCES@

ifeq ($(HAVE_TCL_ONLY),0)
PKG_HEADERS = @PKG_HEADERS@
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)
endif

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@

ifeq ($(HAVE_TCL_ONLY),0)
CC = @CC@
CCLD = @CCLD@
CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
CFLAGS_WARNING = @CFLAGS_WARNING@
EXEEXT = @EXEEXT@
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@
endif


TCL_BIN_DIR = @TCL_BIN_DIR@
TCL_SRC_DIR = @TCL_SRC_DIR@

EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR)
TCLLIBPATH = @TCLLIBPATH@
TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library`
ifeq ($(HAVE_TCL_ONLY),0)
PKG_ENV = @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
		  PATH="$(EXTRA_PATH):$(PATH)" \
		  TCLLIBPATH="$(TCLLIBPATH)"
else
PKG_ENV = PATH="$(EXTRA_PATH):$(PATH)" TCLLIBPATH="$(TCLLIBPATH)"
endif

TCLSH_PROG = @TCLSH_PROG@
ifeq ($(HAVE_TCL_ONLY),0)
TCLSH = $(TCLSH_ENV) $(PKG_ENV) $(TCLSH_PROG)
else
TCLSH = $(PKG_ENV) $(TCLSH_PROG)
endif


ifeq ($(HAVE_TCL_ONLY),0)
SHARED_BUILD = @SHARED_BUILD@
INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ -I.
PKG_CFLAGS = @PKG_CFLAGS@
DEFS = @DEFS@ $(PKG_CFLAGS)
endif

# Move pkgIndex.tcl to 'BINARIES' var if it is generated in the Makefile
CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl
CLEANFILES = @CLEANFILES@

ifeq ($(HAVE_TCL_ONLY),0)
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)
GDB = gdb
VALGRIND = valgrind
VALGRINDARGS = --tool=memcheck --num-callers=8 --leak-resolution=high \
		  --leak-check=yes --show-reachable=yes -v
CALLGRINDARGS = --tool=callgrind
.SUFFIXES: .c .$(OBJEXT)
endif


#========================================================================
# Top recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
all: binaries libraries
else
all: libraries
endif

binaries: $(BINARIES)

libraries:

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

#========================================================================
# Building recipes
#========================================================================
depend:

ifeq ($(HAVE_TCL_ONLY),0)
$(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)

VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win:$(srcdir)/macosx

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

endif


#========================================================================
# Doc generating recipes
#========================================================================
doc:
	$(TCLSH) $(srcdir)/docs/doc_gen.tcl

#========================================================================
# Debugging recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
gdb:
	$(TCLSH_ENV) $(PKG_ENV) $(GDB) $(TCLSH_PROG) $(SCRIPT)

gdb-test: binaries libraries
	$(TCLSH_ENV) $(PKG_ENV) $(GDB) \
	    --args $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/test/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)/test/all.tcl` $(TESTFLAGS)

callgrind: binaries libraries
	$(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(CALLGRINDARGS) $(TCLSH_PROG) \
	    `@CYGPATH@ $(srcdir)/test/all.tcl` $(TESTFLAGS)

callgrindperf: binaries libraries
	$(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(CALLGRINDARGS) $(TCLSH_PROG) \
	    `@CYGPATH@ $(srcdir)/test/performance_test.tcl` $(TESTFLAGS)

valgrindshell: binaries libraries
	$(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) $(SCRIPT)
endif

#========================================================================
# Test recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
test: binaries libraries
	$(TCLSH) `@CYGPATH@ $(srcdir)/test/all.tcl` $(TESTFLAGS) \
	    -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \
		[list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)]]"
else
test: libraries
	$(TCLSH) `@CYGPATH@ $(srcdir)/test/all.tcl` $(TESTFLAGS)
endif

#========================================================================
# Package installing recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
install: all install-binaries  install-doc
install-binaries: binaries install-lib-binaries install-bin-binaries
else
install: all install-libraries install-doc
install-libraries:
	@mkdir -p $(DESTDIR)$(pkglibdir)
	@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
	@echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \
	$(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir);
endif

install-doc:
	@$(INSTALL_DATA_DIR) "$(DESTDIR)$(mandir)/mann"
	@echo "Installing documentation in $(DESTDIR)$(mandir)"
	@list='$(srcdir)/docs/*.n'; for i in $$list; do \
	    echo "Installing $$i"; \
	    $(INSTALL_DATA) $$i "$(DESTDIR)$(mandir)/mann" ; \
	done

#========================================================================
# Distribution creation
#========================================================================
COMPRESS = tar zcvf $(PKG_DIR).tar.gz $(PKG_DIR)
COMPRESS_ZIP= zip -r $(PKG_DIR).zip $(PKG_DIR)
DIST_ROOT = /tmp/dist
DIST_DIR = $(DIST_ROOT)/$(PKG_DIR)

ifeq ($(HAVE_TCL_ONLY),0)
DIST_INSTALL_DATA = CPPROG='cp -p' $(INSTALL) -m 644
DIST_INSTALL_SCRIPT = CPPROG='cp -p' $(INSTALL) -m 755
endif

dist-clean:
	rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.*;\
	rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).zip


ifeq ($(HAVE_TCL_ONLY),0)
dist: dist-clean
	mkdir -p $(DIST_DIR)
	cp -p $(srcdir)/README.md $(DIST_DIR)/
	cp -p $(srcdir)/LICENSE* $(DIST_DIR)/
	cp -p $(srcdir)/pkgIndex.tcl $(DIST_DIR)/
	cp -p $(srcdir)/$(PKG_LIB_FILE) $(DIST_DIR)/
	for i in $(srcdir)/*.tcl; do \
	    if [ -f $$i ]; then \
		cp -p $$i $(DIST_DIR)/ ; \
	    fi; \
	done;
	mkdir -p $(DIST_DIR)/test
	cp -p $(srcdir)/test/all.tcl $(DIST_DIR)/test/
	cp -p $(srcdir)/test/argparse.test $(DIST_DIR)/test/

	(cd $(DIST_ROOT); $(COMPRESS); $(COMPRESS_ZIP))
else
dist: dist-clean
	mkdir -p $(DIST_DIR)
	cp -p $(srcdir)/README.md $(DIST_DIR)/
	cp -p $(srcdir)/LICENSE $(DIST_DIR)/
	cp -p $(srcdir)/pkgIndex.tcl $(DIST_DIR)/
	cp -p $(srcdir)/argparse.tcl $(DIST_DIR)/
	mkdir -p $(DIST_DIR)/test
	cp -p $(srcdir)/test/argparse.test $(DIST_DIR)/test
	cp -p $(srcdir)/test/all.tcl $(DIST_DIR)/test

	(cd $(DIST_ROOT); $(COMPRESS); $(COMPRESS_ZIP))
endif

#========================================================================
# Cleaning of building files
#========================================================================
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 (no headers)
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
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
	@if test "x$(SHARED_BUILD)" = "x1"; then \
	    echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \
	    $(INSTALL_DATA) pkgIndex.tcl "$(DESTDIR)$(pkglibdir)"; \
	fi
endif

#========================================================================
# Install binary executables
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
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
endif


Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
	cd $(top_builddir) \
	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status

#========================================================================
# Uninstall recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
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
else
uninstall-libraries:
	list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
	  p=`basename $$p`; \
	  rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
	done
endif

uninstall:
	rm -rf "$(DESTDIR)$(pkglibdir)"

#========================================================================
# Flag PHONY recipes
#========================================================================
ifeq ($(HAVE_TCL_ONLY),0)
.PHONY: all binaries clean depend distclean doc install libraries test
.PHONY: gdb gdb-test valgrind valgrindshell
else
.PHONY: all clean depend distclean doc install libraries test
endif

.NOEXPORT:
