# 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.
#
# RCS: @(#) $Id: Makefile.in,v 1.1.1.1 2009/03/31 14:11:52 cguirao Exp $

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

# Install these scripts
PROGS = skycat

# Testing applications
TEST_APPS = 

# For convenience (and backward compatibility), merge in the required package objects
MERGE_OBJECTS = @MERGE_OBJECTS@

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

PKG_BIN_FILE	= 

bin_BINARIES	= $(PKG_BIN_FILE) $(PROGS)
lib_BINARIES	= $(PKG_LIB_FILE)
BINARIES	= $(lib_BINARIES) $(bin_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_NAME)$(PACKAGE_VERSION)
pkgdatadir	= $(datadir)/$(PKG_DIR)
pkglibdir	= $(libdir)/$(PKG_DIR)
pkgincludedir	= $(includedir)/$(PACKAGE_NAME)

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@
CXX		= @CXX@
CFLAGS_DEFAULT	= @CFLAGS_DEFAULT@
#CFLAGS_WARNING	= @CFLAGS_WARNING@
CLEANFILES	= @CLEANFILES@ $(TEST_APPS) *.o tests/*.o
EXEEXT		= @EXEEXT@
LDFLAGS_DEFAULT	= @LDFLAGS_DEFAULT@
MAKE_LIB	= @MAKE_LIB@ $(MERGE_OBJECTS)
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	= $(top_builddir)
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)

#WISH_PROG	= @WISH_PROG@
#WISH	= $(TCLSH_ENV) $(WISH_PROG)


SHARED_BUILD	= @SHARED_BUILD@

INCLUDES	= @PKG_INCLUDES@ @TCL_INCLUDES@
#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.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)

CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl ${PACKAGE_NAME}Config.sh ${PACKAGE_NAME}.sh ${PACKAGE_NAME}_version.tcl

CPPFLAGS	= @CPPFLAGS@
LIBS		= @PKG_LIBS@ @LIBS@
AR		= @AR@
CFLAGS		= @CFLAGS@
COMPILE		= $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CXXCOMPILE	= $(CXX) $(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 tclIndex

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

tclIndex:
	(cd $(srcdir)/library; $(TCLSH_PROG) mkIndex.tcl)


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

# generate man pages for itcl classes
gendoc: 
	(cd  $(srcdir)/library; $(TCLSH) itcldoc [A-Z]*.tcl)

# remove generated man pages
cleandoc:
	rm -f $(srcdir)/man/[A-Z]*.mann



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
	@test -d $(DESTDIR)$(pkgincludedir) || mkdir -p $(DESTDIR)$(pkgincludedir)
	@echo "Installing header files in $(DESTDIR)$(pkgincludedir)"
	@list='$(PKG_HEADERS)'; for i in $$list; do \
	    echo "Installing $(srcdir)/$$i" ; \
	    $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(pkgincludedir) ; \
	done;

#========================================================================
# Install documentation.  Unix manpages should go in the $(mandir)
# directory.
#========================================================================

install-doc: 
#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

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) $(MERGE_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

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

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

#========================================================================
# End of user-definable section
#========================================================================

#========================================================================
# Don't modify the file to clean here.  Instead, set the "CLEANFILES"
# variable in configure.in
#========================================================================

clean:  clean-release
	-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 -rf config.cache config.log config.status autom4te.cache

#========================================================================
# 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
	@test -d $(DESTDIR)$(pkglibdir) || mkdir -p $(DESTDIR)$(pkglibdir)
	@list='$(lib_BINARIES)'; for p in $$list; do \
	  if test -f $$p; then \
	    echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
	    $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
	    stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
	    if test "x$$stub" = "xstub"; then \
		echo " $(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p"; \
		$(RANLIB_STUB) $(DESTDIR)$(libdir)/$$p; \
	    else \
		echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
		$(RANLIB) $(DESTDIR)$(libdir)/$$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)$(libdir)/$$lib"; \
	            $(INSTALL_DATA) $$lib $(DESTDIR)$(libdir)/$$lib; \
		fi; \
	    fi; \
	  fi; \
	done
	@echo " Install $(PACKAGE_NAME)Config.sh $(DESTDIR)$(libdir)"
	@$(INSTALL_DATA) $(PACKAGE_NAME)Config.sh $(DESTDIR)$(libdir);
	@list='$(PKG_TCL_SOURCES) library/tclIndex $(PACKAGE_NAME)_version.tcl'; \
	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

#	(cd $(DESTDIR)$(pkglibdir); $(TCLSH_PROG) mkIndex.tcl)

#========================================================================
# 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
	@test -d $(DESTDIR)$(bindir) || 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=`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

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

FORCE:

#========================================================================
# C++ Test cases
#========================================================================
#test: binaries libraries $(TEST_APPS)


#========================================================================
# Run Tcl test cases
#========================================================================
#tcltest: binaries libraries
#	(cd tests; sh all.tcl)


#========================================================================
# Generate the skycat release
#========================================================================
SKYCAT_FILES = \
	bin/skycat \
	bin/rtd \
	bin/rtdServer \
	bin/tRtd \
	lib/tclutil@tclutil_VERSION@ \
	lib/@tclutil_LIB_FILE@ \
	lib/astrotcl@astrotcl_VERSION@ \
	lib/@astrotcl_LIB_FILE@ \
	lib/rtd@rtd_VERSION@ \
	lib/@rtd_LIB_FILE@ \
	lib/cat@cat_VERSION@ \
	lib/@cat_LIB_FILE@ \
	lib/skycat@PACKAGE_VERSION@ \
	lib/@skycat_LIB_FILE@ \
	lib/librtdImgEvt.a \
	lib/librtdRemote.a

# Required Tcl/Tk environment
# Note: the versions and directories below assume Tcl/Tk was build from the tcltk
# source package (tcltk dir in CVS, tcltk-8.4.tar.gz on the skycat ftp server)
# and most likely won't match the layout under /usr (each Linux distribution
# uses a different layout and its not trivial to determine where everything is!)
TCLTK_FILES = \
	bin/wish@TCL_VERSION@ \
	lib/tcl@TCL_VERSION@/ \
	lib/@TCL_LIB_FILE@ \
	lib/tk@TK_VERSION@/ \
	lib/@TK_LIB_FILE@ \
	lib/blt2.4/ \
	lib/libBLT24@SHLIB_SUFFIX@ \
	lib/itcl3.3/ \
	lib/itk3.3/ \
	lib/tclx8.4/ \
	lib/iwidgets4.0.1/ \
	lib/Img1.3/

# Generate the binary release for this host type
release: clean-release @OS@-release

clean-release: FORCE
	rm -rf ./release

# On Mac OS X, the skycat install dir contains the complete tcl/tk. 
# Create a standalone Skycat.app directory structure.
darwin-release Darwin-release: skycat-release tcltk-release
	mkdir release/Contents
	mkdir release/Contents/MacOs
	mkdir release/Contents/Resources
	cp mac/skycat.icns release/Contents/Resources
	cp mac/Info.plist release/Contents
	cp mac/PkgInfo release/Contents
	mv release/bin release/Contents/Resources
	mv release/lib release/Contents/Resources
	(cd release/Contents/MacOs; ln -s ../Resources/bin/skycat .)
	rm -f SkycatTmp.dmg
	hdiutil create -megabytes 30 -fs HFS+ -volname Skycat SkycatTmp.dmg
	hdiutil mount SkycatTmp.dmg
	test -d /Volumes/Skycat || exit 1
	rm -rf Skycat.app && mv release Skycat.app
	tar cf - Skycat.app | (cd /Volumes/Skycat; tar xf -)
	hdiutil unmount /Volumes/Skycat/
	rm -f Skycat.dmg
	hdiutil convert -format UDZO SkycatTmp.dmg -o Skycat.dmg
	hdiutil internet-enable -yes Skycat.dmg
	rm -f SkycatTmp.dmg
	mkdir release
	mv Skycat.app Skycat.dmg release

# On Linux, create the source rpm, from which you can create the release rpm
linux-release Linux-release: skycat-src-release skycat-bin-release
	@echo "Please run skycat/linux/make_rpm.sh as root to create the skycat RPMs"

solaris-release SunOS-release: skycat-bin-release
	@echo "Done: The resulting tar file is in `pwd`/release"

hp-release hpux-release HP-UX-release: skycat-bin-release
	@echo "Done: The resulting tar file is in `pwd`/release"

# create a release directory with only the files needed to run skycat
skycat-release: FORCE
	test -d release || mkdir release
	(cd ${exec_prefix}; tar cf - $(SKYCAT_FILES)) | (cd release; tar xf -)

# copy the required tcl/tk files to the release dir
tcltk-release: FORCE
	test -d release || mkdir release
	(cd ${TCL_BIN_DIR}/..; tar cf - $(TCLTK_FILES)) | (cd release; tar xf -)
	find release -type d -name demos -prune -exec rm -rf {} \;

# Make a tar.gz file containing the current, local sources (requires GNU tar)
skycat-src-release:
	test -d release || mkdir release
	rm -rf release/skycat
	mkdir release/skycat
	(cd ..; tar cf - --exclude ./skycat/release .) | (cd release/skycat && tar xf -)
	(cd release/skycat; $(MAKE) distclean)
	find release/skycat -name 'CVS' -prune -exec rm -rf {} \;
	find release/skycat -name '*~' -exec rm -f {} \;
	find release/skycat -name '.cvsignore*' -exec rm -f {} \;
	(cd release/skycat; autoconf)
	(cd release/skycat/tclutil; autoconf)
	(cd release/skycat/astrotcl; autoconf)
	(cd release/skycat/rtd; autoconf)
	(cd release/skycat/cat; autoconf)
	(cd release/skycat/skycat; autoconf)
	mv release/skycat release/skycat-$(PACKAGE_VERSION)
	(cd release; tar czf skycat-$(PACKAGE_VERSION).tar.gz skycat-$(PACKAGE_VERSION))
	rm -rf release/skycat-$(PACKAGE_VERSION)

# Make a tar.gz file containing the current CVS sources (requires GNU tar)
skycat-cvs-release:
	test -d release || mkdir release
	rm -rf release/skycat
	tag=skycat_`echo $(PACKAGE_VERSION) | sed -e 's/\./_/g'` ;\
	(cd $(srcdir)/..; cvs tag -F $$tag .) ;\
	(cd release; cvs export -r $$tag skycat)
	(cd release/skycat; autoconf)
	(cd release/skycat/tclutil; autoconf)
	(cd release/skycat/astrotcl; autoconf)
	(cd release/skycat/rtd; autoconf)
	(cd release/skycat/cat; autoconf)
	(cd release/skycat/skycat; autoconf)
	mv release/skycat release/skycat-$(PACKAGE_VERSION)
	(cd release; tar czf skycat-$(PACKAGE_VERSION).tar.gz skycat-$(PACKAGE_VERSION))
	rm -rf release/skycat-$(PACKAGE_VERSION)

# Make a tar.gz file containing the binary skycat and tcl/tk installation
# Note: The resulting tar file contains the host name. You may want to replace
# it with something more useful, such as "fedora4" or "redhat9".
skycat-bin-release: skycat-release tcltk-release
	rm -rf release/skycat-$(PACKAGE_VERSION)
	mkdir release/skycat-$(PACKAGE_VERSION)
	mv release/lib release/bin release/skycat-$(PACKAGE_VERSION)
	h=`echo $(HOST) | sed -e 's/\..*//'` ;\
	(cd release; tar cf skycat-$(PACKAGE_VERSION)-$$h.tar skycat-$(PACKAGE_VERSION)) ;\
	(cd release; gzip -f skycat-$(PACKAGE_VERSION)-$$h.tar; rm -rf skycat-$(PACKAGE_VERSION))
