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