Tcl Source Code

Artifact [c346192db9]
Login

Artifact c346192db95c9a4f11aed16232a2c4b82627eabb:

Attachment "Makefile" to ticket [1881216fff] added by kennykb 2008-01-28 22:56:27.
#
# Makefile.  Generated from Makefile.in by configure.
#

#========================================================================
# All these assignments are substituted by configure
#========================================================================

PKG_OBJECTS= tclOO.obj tclOOCall.obj tclOODefineCmds.obj tclOOInfo.obj tclOOMethod.obj tclOOStubInit.obj TclOO.res.o
PKG_STUB_OBJECTS= tclOOStubLib.obj
PKG_HEADERS= generic/tclOO.h generic/tclOODecls.h
PKG_PRIVATE_HEADERS= generic/tclOOInt.h generic/tclOOIntDecls.h
PKG_LIB_FILE=TclOO02a0.dll
PKG_STUB_LIB_FILE=TclOOstub02a0.lib
SHELL=/bin/sh
srcdir=..
prefix=d:/tcltest
exec_prefix=d:/tcltest
libdir=${exec_prefix}/lib
includedir=${prefix}/include
mandir=${prefix}/man
INSTALL=/bin/install -c
INSTALL_PROGRAM=${INSTALL}
INSTALL_DATA=${INSTALL} -m 644
INSTALL_SCRIPT=${INSTALL}
PACKAGE_NAME=TclOO
PACKAGE_VERSION=0.2a0
CC=cl
CFLAGS_DEFAULT=-nologo -O2 -W2 -MD
CFLAGS_WARNING=
CLEANFILES= TclOO02a0.dll.manifest pkgIndex.tcl
EXEEXT=.exe
LDFLAGS_DEFAULT=-release
MAKE_LIB=${SHLIB_LD} ${SHLIB_LD_LIBS} ${LDFLAGS_DEFAULT} -out:$@ $(PKG_OBJECTS) 
ADD_MANIFEST=mt -manifest [email protected] -outputresource:$@;2
MAKE_SHARED_LIB=${SHLIB_LD} ${SHLIB_LD_LIBS} ${LDFLAGS_DEFAULT} -out:$@ $(PKG_OBJECTS)
MAKE_STATIC_LIB=${STLIB_LD} -out:$@ $(PKG_OBJECTS)
MAKE_STUB_LIB=${STLIB_LD} -out:$@ $(PKG_STUB_OBJECTS)
OBJEXT=obj
RANLIB=:
RANLIB_STUB=:
SHLIB_CFLAGS=
SHLIB_LD=link -dll -nologo
SHLIB_LD_LIBS=${LIBS} "/d/tcltest/lib/tclstub85.lib"
STLIB_LD=link -lib -nologo
TCL_SRC_DIR=/d/SourceForge/tcl
TCL_BIN_DIR=/d/tcltest/lib
# Not actually used, but can help when tracing errors
#TCL_LIBS=user32.lib advapi32.lib ws2_32.lib
#MT=mt
TCLSH_PROG=/d/tcltest/bin/tclsh85.exe
INCLUDES= -I. -I"../generic" -I"/d/SourceForge/tcl/generic" -I"/d/SourceForge/tcl/win"
PKG_CFLAGS=
DEFS=-DPACKAGE_NAME=\"TclOO\" -DPACKAGE_TARNAME=\"tcloo\" -DPACKAGE_VERSION=\"0.2a0\" -DPACKAGE_STRING=\"TclOO\ 0.2a0\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -Dinline=__inline -DTCL_THREADS=1 -DUSE_TCL_STUBS=1 -DBUILD_tcloo=1  $(PKG_CFLAGS)
CPPFLAGS=
LIBS=  
AR=ar
CFLAGS= ${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} 
CYGPATH=echo
SDX=none
TCLSH_ENV=TCL_LIBRARY="`$(CYGPATH) $(TCL_SRC_DIR)/library`" \
	  LD_LIBRARY_PATH="$(EXTRA_PATH):$(LD_LIBRARY_PATH)" \
	  PATH="$(EXTRA_PATH):$(PATH)" \
	  TCLLIBPATH="$(TCLLIBPATH)"
RC=rc
RCFLAGS= --include "../generic" --define PACKAGE_NAME='\"$(PACKAGE_NAME)\"' --define PKG_LIB_FILE='\"$(PKG_LIB_FILE)\"' --define PACKAGE_VERSION='\"$(PACKAGE_VERSION)\"'
RES=res.o

#========================================================================
# None of these assignments are substituted by configure
#========================================================================

SRC_DIR=$(srcdir)
BINARIES=$(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE)
DESTDIR=
PKG_DIR=$(PACKAGE_NAME)$(PACKAGE_VERSION)
PKG_KIT_ROOT=$(PKG_DIR)-$(PLATFORM)
PKG_KIT=$(PKG_KIT_ROOT).kit
pkglibdir=$(libdir)/$(PKG_DIR)
top_builddir=.
TCL_VERSION_REQ=8.5b1
EXTRA_PATH=$(top_builddir):$(TCL_BIN_DIR)
TCLLIBPATH = $(top_builddir)
TCLSH_PROGRAM="$(TCLSH_PROG)"
TCLSH=$(TCLSH_ENV) $(TCLSH_PROGRAM)
CONFIG_CLEAN_FILES="Makefile tclooConfig.sh"
COMPILE=$(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
VPATH=$(SRC_DIR)/generic:$(SRC_DIR)/unix:$(SRC_DIR)/win:$(SRC_DIR)/macosx:$(SRC_DIR)
TESTFLAGS=
KIT_PKG_ROOT=$(PKG_KIT_ROOT).vfs/lib/$(PACKAGE_NAME)
ITERATIONS=1000

#========================================================================
# This is something that is found by executing a Tcl script
#========================================================================

PLATFORM:=$(shell echo 'package require platform;puts [platform::generic]' | $(TCLSH))

#========================================================================
# Master rules
#========================================================================

all: package libraries
package: $(PKG_LIB_FILE) pkgIndex.tcl
libraries: $(PKG_STUB_LIB_FILE)
install: all install-package install-libraries install-headers install-doc
kit: sdx_valid $(PKG_KIT)

#========================================================================
# Basic installation rules
#========================================================================

install-package: package
	@mkdir -p $(DESTDIR)$(pkglibdir)
	$(INSTALL_PROGRAM) $(PKG_LIB_FILE) $(DESTDIR)$(pkglibdir)/$(PKG_LIB_FILE)
	$(RANLIB) $(DESTDIR)$(pkglibdir)/$(PKG_LIB_FILE)
	$(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)/pkgIndex.tcl
	$(INSTALL_DATA) tclooConfig.sh $(DESTDIR)$(pkglibdir)/tclooConfig.sh
#	for p in $(SRC_DIR)/library/*.tcl ; do \
#	    destp=`basename $$p`; \
#	    echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \
#	    $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibdir)/$$destp; \
#	done
install-headers:
	@echo "Installing header files in $(DESTDIR)$(includedir)"
	@mkdir -p $(DESTDIR)$(includedir)
	@list='$(PKG_HEADERS)'; for p in $$list; do \
	    echo "Installing $(SRC_DIR)/$$p" ; \
	    destp=`basename $$p`; \
	    $(INSTALL_DATA) $(SRC_DIR)/$$p $(DESTDIR)$(includedir)/$$destp ; \
	done;
install-private-headers:
	@echo "Installing private header files in $(DESTDIR)$(includedir)"
	@mkdir -p $(DESTDIR)$(includedir)
	@list='$(PKG_PRIVATE_HEADERS)'; for p in $$list; do \
	    echo "Installing $(SRC_DIR)/$$p" ; \
	    destp=`basename $$p`; \
	    $(INSTALL_DATA) $(SRC_DIR)/$$p $(DESTDIR)$(includedir)/$$destp ; \
	done;
install-libraries: libraries
	@echo "Installing $(PKG_STUB_LIB_FILE) in $(DESTDIR)$(pkglibdir)"
	@mkdir -p $(DESTDIR)$(pkglibdir)
	$(INSTALL_PROGRAM) $(PKG_STUB_LIB_FILE) $(DESTDIR)$(pkglibdir)
	$(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$(PKG_STUB_LIB_FILE)

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

install-doc: doc
	@echo "Installing documentation in $(DESTDIR)$(mandir)"
	@mkdir -p $(DESTDIR)$(mandir)/mann
	@list='$(SRC_DIR)/doc/*.n'; for i in $$list; do \
	    echo "Installing $$i"; \
	    rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \
	    $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \
	done
	@mkdir -p $(DESTDIR)$(mandir)/man3
	@list='$(SRC_DIR)/doc/*.3'; for i in $$list; do \
	    echo "Installing $$i"; \
	    rm -f $(DESTDIR)$(mandir)/man3/`basename $$i`; \
	    $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man3 ; \
	done

# A do-nothing target at the moment
doc:

#========================================================================
# Run the test suite or benchmarks for the package, or just start a shell
# primed to load the package.
#========================================================================

test: package libraries
	@echo $(TCLSH_PROGRAM) $(SRC_DIR)/tests/all.tcl $(TESTLOAD) $(TESTFLAGS)
	@$(TCLSH) `$(CYGPATH) $(SRC_DIR)/tests/all.tcl` $(TESTLOAD) $(TESTFLAGS)

benchmarks: package libraries
	@echo Benchmark Iterations = $(ITERATIONS)
	@list='$(SRC_DIR)/benchmarks/*.tcl'; for i in $$list; do \
	    echo "Benchmarking $$i"; \
	    time $(TCLSH) `$(CYGPATH) $$i` $(ITERATIONS); \
	done

shell: package libraries
	@echo $(TCLSH_PROGRAM) $(SCRIPT)
	@$(TCLSH) $(SCRIPT)

#========================================================================
# These rules say how to run tclsh in a hostile Windows environment, while
# still working on Unix.
#========================================================================

gdb.run:
	@echo "catch {puts \"target exec [file attributes [file normalize [lindex \$$argv 0]] -shortname]\";exit};puts \"target exec [file normalize [lindex \$$argv 0]]\"" >gdbhelper.tcl
	@$(TCLSH) gdbhelper.tcl "$(TCLSH_PROGRAM)" > gdb.run
	@rm gdbhelper.tcl
	@echo "set env TCL_LIBRARY=$(TCL_SRC_DIR)/library" >> gdb.run
	@echo "set env LD_LIBRARY_PATH=$(EXTRA_PATH):$(LD_LIBRARY_PATH)" >> gdb.run
	@echo "set env TCLLIBPATH=$(top_builddir)" >> gdb.run
	@sh -c 'test x$${OSTYPE} = xmsys && echo "set new-console off" >> gdb.run'

gdb: package libraries gdb.run
	@echo gdb $(TCLSH_PROGRAM) $(ARGS)
	@gdb --command=gdb.run $(ARGS)
	@rm gdb.run
gdbtest: package libraries gdb.run
	@echo "set args `$(CYGPATH) $(SRC_DIR)/tests/all.tcl` $(TESTLOAD) $(TESTFLAGS)" >>gdb.run
	@echo gdb $(TCLSH_PROGRAM) $(MANGLED)
	@gdb --command=gdb.run
	@rm gdb.run

#========================================================================
# The rules for actually doing the build of the package.
#========================================================================

$(PKG_LIB_FILE): $(PKG_OBJECTS)
	-rm -f $(PKG_LIB_FILE)
	${MAKE_LIB}
	${ADD_MANIFEST}
	$(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)
.c.obj:
	$(COMPILE) -c `$(CYGPATH) $<` -o $@
.rc.$(RES):
	$(RC) -o $@ $(RCFLAGS) "$<"
pkgIndex.tcl: Makefile
	-@echo Creating pkgIndex.tcl
	@( \
	echo 'if {[catch {package require Tcl $(TCL_VERSION_REQ)}]} return'; \
	echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \
	    [list load [file join $$dir $(PKG_LIB_FILE)] $(PACKAGE_NAME)]' \
	) > pkgIndex.tcl
Makefile: $(SRC_DIR)/Makefile.in $(top_builddir)/config.status
	cd $(top_builddir) \
	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status

#========================================================================
# How to rebuild the package's stub table.
#========================================================================

genstubs: $(SRC_DIR)/tools/genStubs.tcl $(SRC_DIR)/generic/tclOO.decls
	@echo $(TCLSH_PROGRAM) $(SRC_DIR)/tools/genStubs.tcl $(SRC_DIR)/generic $(SRC_DIR)/generic/tclOO.decls
	@$(TCLSH) `$(CYGPATH) $(SRC_DIR)/tools/genStubs.tcl` `$(CYGPATH) $(SRC_DIR)/generic` `$(CYGPATH) $(SRC_DIR)/generic/tclOO.decls`

#========================================================================
# Build a starkit - this is experimental!
#========================================================================

sdx_valid:
	@test "$(SDX)" != "none" || ( echo "Cannot build kit; no sdx!"; false )
$(PKG_KIT): $(PKG_LIB_FILE)
	-@mkdir -p $(KIT_PKG_ROOT)/$(PLATFORM)
	cp $(PKG_LIB_FILE) $(KIT_PKG_ROOT)/$(PLATFORM)
	-@echo Creating $(KIT_PKG_ROOT)/pkgIndex.tcl
	@( \
	echo 'if {[catch {package require Tcl $(TCL_VERSION_REQ)}]} return'; \
	echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION)' \
	    '[list load [file join $$dir $(PLATFORM) $(PKG_LIB_FILE)] $(PACKAGE_NAME)]' \
	) > $(KIT_PKG_ROOT)/pkgIndex.tcl
	$(SDX) wrap $(PKG_KIT)
	-@rm -rf $(PKG_KIT_ROOT).vfs $(PKG_KIT_ROOT).bat

#========================================================================
# How to clean up after a build.
#========================================================================

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

#========================================================================
# Distribution creation (FROM sampleextension)
# 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
	mkdir -p $(DIST_DIR)
	cp -p $(srcdir)/ChangeLog $(srcdir)/README* $(srcdir)/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='demos generic library mac tests unix win'; \
	for p in $$list; do \
	    if test -d $(srcdir)/$$p ; then \
		mkdir $(DIST_DIR)/$$p; \
		cp -p $(srcdir)/$$p/*.* $(DIST_DIR)/$$p/; \
	    fi; \
	done
	mkdir $(DIST_DIR)/doc
	for p in $(srcdir)/doc/*.?; do \
	    soelim -I $(srcdir)/doc $$p >$(DIST_DIR)/doc/`basename $$p`; \
	done

	(cd $(DIST_ROOT); $(COMPRESS);)

#========================================================================
# Magic declarations to make.
#========================================================================

.SUFFIXES: .c .$(OBJEXT) .rc .$(RES)
.PHONY: all package clean depend distclean doc install libraries test kit
.PHONY: sdx_valid doc dist dist-clean benchmarks shell genstubs gdb gdbtest