Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
548 lines (447 sloc) 19.2 KB
# 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 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.15 2008/02/24 22:22:10 treectrl Exp $
#========================================================================
# Edit the following few lines when writing a new extension
#========================================================================
#========================================================================
# 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 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_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_EXTRA_FILES =
PKG_MAN_PAGES =
#========================================================================
# "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@
lib_BINARIES = $(PKG_LIB_FILE)
BINARIES = $(lib_BINARIES)
SHELL = @SHELL@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
datadir = @datadir@
datarootdir = @datarootdir@
mandir = @mandir@
includedir = @includedir@
DESTDIR =
PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_PATCHLEVEL)
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@
PACKAGE_PATCHLEVEL = @PACKAGE_PATCHLEVEL@
CC = @CC@
CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
CFLAGS_WARNING = @CFLAGS_WARNING@
CLEANFILES = @CLEANFILES@
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_SRC_DIR = @TCL_SRC_DIR@
TCL_BIN_DIR = @TCL_BIN_DIR@
TK_SRC_DIR = @TK_SRC_DIR@
TK_BIN_DIR = @TK_BIN_DIR@
# Not used, but retained for reference of what libs Tcl required
TCL_LIBS = @TCL_LIBS@
TK_LIBS = @TK_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):$(TK_BIN_DIR)
TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \
TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library` \
TREECTRL_LIBRARY=`@CYGPATH@ $(srcdir)/library` \
@LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
PATH="$(EXTRA_PATH):$(PATH)" \
TCLLIBPATH="$(top_builddir)"
TCLSH_PROG = @TCLSH_PROG@
WISH_PROG = @WISH_PROG@
TCLSH = $(TCLSH_ENV) $(TCLSH_PROG)
WISH = $(TCLSH_ENV) $(WISH_PROG)
# The local includes must come first, because the TK_XINCLUDES can be
# just a comment
INCLUDES = @PKG_INCLUDES@ \
@TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@
PKG_CFLAGS = @PKG_CFLAGS@
DEFS = @DEFS@ $(PKG_CFLAGS)
CONFIG_CLEAN_FILES = Makefile
CPPFLAGS = @CPPFLAGS@
LIBS = @PKG_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
libraries:
doc-x:
@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"
doc:
@echo "No docs to build"
install: all install-binaries install-libraries install-doc
install-binaries: binaries install-lib-binaries install-bin-binaries
@mkdir -p $(DESTDIR)$(pkglibdir)
$(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)
@list='$(PKG_EXTRA_FILES)'; 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
#========================================================================
# This rule installs platform-independent files, such as header files.
#========================================================================
install-libraries: libraries
#========================================================================
# Install documentation. Unix manpages should go in the $(mandir)
# directory.
#========================================================================
install-doc-x:
@mkdir -p $(DESTDIR)$(mandir)/mann
@echo "Installing documentation in $(DESTDIR)$(mandir)"
@for i in $(srcdir)/doc/*.n; do \
echo "Installing $$i"; \
rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \
$(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \
done
install-doc: install-doc-x
mkdir -p $(DESTDIR)$(pkglibdir)/htmldoc
cp $(srcdir)/doc/*.html $(DESTDIR)$(pkglibdir)/htmldoc
test: binaries libraries
$(WISH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS) | cat
shell: binaries libraries
@$(WISH) $(SCRIPT)
demo: binaries libraries
@$(WISH) `@CYGPATH@ $(srcdir)/demos/demo.tcl` | cat
gdb:
$(TCLSH_ENV) gdb --silent --args $(WISH_PROG) $(srcdir)/demos/demo.tcl
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.
#
# NOTE regarding the manifest(s): When building on a non-Windows box the
# treectrlNN.dll.manifest file should not exist. When building with
# MingW GCC the manifest will also not exist. Only when building with
# a Microsoft compiler that auto-generates a manifest (to pick the correct
# MSVCRT runtime) will $@.manifest exist; in this case mt.exe should
# also exist. If mt.exe is used there is actually no need for treectrl.rc
# to include treectrl.dll.manifest since mt.exe will clobber that resource
# with the merged manifests.
#========================================================================
$(PKG_LIB_FILE): $(PKG_OBJECTS)
-rm -f $(PKG_LIB_FILE)
${MAKE_LIB}
$(RANLIB) $(PKG_LIB_FILE)
if test -f $@.manifest; then \
mt -nologo -manifest $@.manifest treectrl.dll.manifest "-outputresource:$@;#2"; \
fi;
#========================================================================
# 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:
#
# tkpkg.$(OBJEXT): $(srcdir)/src/win/tkpkg.c
# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/tkpkg.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.
#========================================================================
# I added leading $(srcdir) because autoconf 2.53 strips it off
VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
.c.@OBJEXT@:
$(COMPILE) -c `@CYGPATH@ $<` -o $@
.rc.@RES@:
@RC@ @RC_OUT@ $@ @RC_INCLUDE@ "`@CYGPATH@ $(srcdir)`" @RC_DEPARG@
#========================================================================
# Create the pkgIndex.tcl file.
#========================================================================
pkgIndex.tcl:
(\
echo 'if {[catch {package require Tcl @TK_VERSION@}]} return';\
echo 'set script ""';\
echo 'if {![info exists ::env(TREECTRL_LIBRARY)]';\
echo ' && [file exists [file join $$dir treectrl.tcl]]} {';\
echo ' append script "set ::treectrl_library \"$$dir\"\n"';\
echo '}';\
echo 'append script "load \"[file join $$dir $(PKG_LIB_FILE)]\" $(PACKAGE_NAME)"';\
echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_PATCHLEVEL) $$script'\
) > 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_NAME = tktreectrl-$(PACKAGE_PATCHLEVEL)
DIST_ARC = $(DIST_NAME).tar.gz
COMPRESS = tar zcvf $(DIST_ARC) $(DIST_NAME)
DIST_ROOT = /tmp/dist
DIST_DIR = $(DIST_ROOT)/$(DIST_NAME)
DIST_DEMOS = biglist bitmaps column-lock demo explorer firefox help \
imovie layout mailwasher mycomputer outlook-folders \
outlook-newgroup random span style-editor textvariable \
www-options
DIST_DOCS = man.macros treectrl.html treectrl.man treectrl.n
DIST_DOCS2 = "What's New in TkTreeCtrl.html"
DIST_LIBRARY = filelist-bindings.tcl treectrl.tcl
dist-clean:
rm -rf $(DIST_DIR) $(DIST_ROOT)/$(DIST_ARC)
dist: dist-clean
mkdir -p $(DIST_DIR)
mkdir -p $(DIST_DIR)/demos
mkdir -p $(DIST_DIR)/demos/pics
mkdir -p $(DIST_DIR)/doc
mkdir -p $(DIST_DIR)/generic
mkdir -p $(DIST_DIR)/library
mkdir -p $(DIST_DIR)/shellicon
mkdir -p $(DIST_DIR)/shellicon/tclconfig
mkdir -p $(DIST_DIR)/tclconfig
mkdir -p $(DIST_DIR)/tests
list='aclocal.m4 ChangeLog configure configure.ac license.terms Makefile.in README.txt treectrl.dll.manifest.in treectrl.rc winrc.m4'; \
for p in $$list; do \
cp -p $(srcdir)/$$p $(DIST_DIR)/$$p; \
done
chmod 664 $(DIST_DIR)/Makefile.in $(DIST_DIR)/aclocal.m4
chmod 775 $(DIST_DIR)/configure $(DIST_DIR)/configure.ac
list='$(DIST_DEMOS)'; for p in $$list; do \
cp -p $(srcdir)/demos/$$p.tcl $(DIST_DIR)/demos/$$p.tcl; \
done
cp -p $(srcdir)/demos/pics/*.gif $(DIST_DIR)/demos/pics/
list='$(DIST_DOCS)'; for p in $$list; do \
cp -p $(srcdir)/doc/$$p $(DIST_DIR)/doc/$$p; \
done
cp -p $(srcdir)/doc/$(DIST_DOCS2) $(DIST_DIR)/doc/$(DIST_DOCS2)
cp -p $(srcdir)/generic/*.[ch] $(DIST_DIR)/generic/
list='$(DIST_LIBRARY)'; for p in $$list; do \
cp -p $(srcdir)/library/$$p $(DIST_DIR)/library/$$p; \
done
list='aclocal.m4 configure configure.ac Makefile.in shellicon.c'; \
for p in $$list; do \
cp -p $(srcdir)/shellicon/$$p $(DIST_DIR)/shellicon/$$p; \
done
chmod 664 $(DIST_DIR)/shellicon/Makefile.in $(DIST_DIR)/shellicon/aclocal.m4
chmod 775 $(DIST_DIR)/shellicon/configure $(DIST_DIR)/shellicon/configure.ac
list='install-sh README.txt tcl.m4'; \
for p in $$list; do \
cp -p $(srcdir)/shellicon/tclconfig/$$p $(DIST_DIR)/shellicon/tclconfig/$$p; \
done
chmod 664 $(DIST_DIR)/shellicon/tclconfig/tcl.m4
chmod +x $(DIST_DIR)/shellicon/tclconfig/install-sh
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
cp -p $(srcdir)/tests/all.tcl $(srcdir)/tests/*.test $(DIST_DIR)/tests/
(cd $(DIST_ROOT); $(COMPRESS);)
#========================================================================
# Windows binary distribution
#========================================================================
DIST_WIN_NAME = treectrl$(PACKAGE_PATCHLEVEL)
DIST_WIN_DIR = $(DIST_ROOT)/$(DIST_WIN_NAME)
DIST_WIN_ARC = tktreectrl-$(PACKAGE_PATCHLEVEL)-Tk@TK_VERSION@-win32.zip
COMPRESS_WIN = zip -r -v -9 $(DIST_WIN_ARC) $(DIST_WIN_NAME)
UPX = upx -9 $(DIST_WIN_DIR)/$(PKG_LIB_FILE)
dist-win-clean:
rm -rf $(DIST_WIN_DIR) $(DIST_ROOT)/$(DIST_WIN_ARC)
dist-win: dist-win-clean
mkdir -p $(DIST_WIN_DIR)
mkdir -p $(DIST_WIN_DIR)/demos
mkdir -p $(DIST_WIN_DIR)/demos/pics
mkdir -p $(DIST_WIN_DIR)/doc
mkdir -p $(DIST_WIN_DIR)/shellicon
list='pkgIndex.tcl $(PKG_LIB_FILE)'; \
for p in $$list; do \
cp -p $(top_builddir)/$$p $(DIST_WIN_DIR)/$$p; \
done
list='license.terms README.txt'; \
for p in $$list; do \
cp -p $(srcdir)/$$p $(DIST_WIN_DIR)/$$p; \
done
strip -s $(DIST_WIN_DIR)/$(PKG_LIB_FILE)
$(UPX)
list='$(DIST_LIBRARY)'; for p in $$list; do \
cp -p $(srcdir)/library/$$p $(DIST_WIN_DIR)/$$p; \
done
list='$(DIST_DEMOS)'; for p in $$list; do \
cp -p $(srcdir)/demos/$$p.tcl $(DIST_WIN_DIR)/demos/$$p.tcl; \
done
cp -p $(srcdir)/demos/pics/*.gif $(DIST_WIN_DIR)/demos/pics/
list='$(DIST_DOCS)'; for p in $$list; do \
cp -p $(srcdir)/doc/$$p $(DIST_WIN_DIR)/doc/$$p; \
done
cp -p $(srcdir)/doc/$(DIST_DOCS2) $(DIST_WIN_DIR)/doc/$(DIST_DOCS2)
TCL_TRIM_DOTS=`echo $(PACKAGE_VERSION) | tr -d .`; \
SHELLICON_DLL="shellicon$$TCL_TRIM_DOTS.dll"; \
cp -p $(top_builddir)/shellicon/$$SHELLICON_DLL $(DIST_WIN_DIR)/shellicon/$$SHELLICON_DLL; \
strip -s $(DIST_WIN_DIR)/shellicon/$$SHELLICON_DLL;
cp -p $(top_builddir)/shellicon/pkgIndex.tcl $(DIST_WIN_DIR)/shellicon/pkgIndex.tcl
(cd $(DIST_ROOT); $(COMPRESS_WIN);)
#========================================================================
# 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='$(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
#========================================================================
# 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)
.SUFFIXES: .@RES@
.SUFFIXES: .rc
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:
Something went wrong with that request. Please try again.