# 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.19 2003/12/30 19:19:47 rolf Exp $ #======================================================================== # Edit the following few lines when writing a new extension #======================================================================== #======================================================================== # Enumerate the names of the source files included in this package. # This will be used when a dist target is added to the Makefile. # EXTRA_SOURCES will be replaced by WIN_SOURCES or UNIX_SOURCES, as is # appropriate for your platform. It is not important to specify the # directory, as long as it is the $(srcdir) or in the generic, win or # unix subdirectory. #======================================================================== EXPAT_SOURCES = xmlrole.c \ xmltok.c \ xmlparse.c TDOM_SOURCES = xmlsimple.c \ utf8conv.c \ dom.c \ domalloc.c \ domhtml.c \ domxpath.c \ domxslt.c \ domlock.c \ tcldom.c \ nodecmd.c \ tdominit.c \ tclexpat.c \ tdomStubInit.c tdomstub_SOURCES= tdomStubLib.c tdom_SOURCES = $(TDOM_SOURCES) $(EXPAT_SOURCES) $(UNIX_SOURCES) WIN_SOURCES = UNIX_SOURCES = #======================================================================== # Identify the object files. This replaces .c with .$(OBJEXT) for all # the named source files. These objects are created and linked into the # final library. In these do not correspond directly to the source files # above, you will need to enumerate the object files here. # Normally we would use $(OBJEXT), but certain make executables won't do # the extra macro in a macro conversion properly. # # "sample_LIB_FILE" refers to the library (dynamic or static as per # configuration options) composed of the named objects. #======================================================================== tdom_OBJECTS = $(tdom_SOURCES:.c=.) tdom_LIB_FILE = libtdom0.8.0.dylib tdomstub_OBJECTS = $(tdomstub_SOURCES:.c=.) tdomstub_LIB_FILE = libtdomstub0.8.0.a #======================================================================== # RUNTIME_SOURCES identifies Tcl runtime files that are associated with # this package that need to be installed, if any. #======================================================================== RUNTIME_SOURCES = tdom.tcl #======================================================================== # This is a list of header files to be installed #======================================================================== GENERIC_HDRS = #======================================================================== # Add additional lines to handle any additional AC_SUBST cases that # have been added to the configure script. #======================================================================== AOL_DIR = #======================================================================== # This are additional flags to be appended to the test suite run #======================================================================== TESTFLAGS = -constraints longRunning #======================================================================== # 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 variable "$(PACKAGE)_LIB_FILE" is the parameterized name of the # library that we are building. #======================================================================== lib_BINARIES = $($(PACKAGE)_LIB_FILE) $($(PACKAGE)stub_LIB_FILE) bin_BINARIES = $(TDOMSHELL) #BINARIES = $(lib_BINARIES) $(bin_BINARIES) BINARIES = $(lib_BINARIES) SHELL = /bin/sh srcdir = ./.. prefix = exec_prefix = bindir = ${exec_prefix}/bin libdir = /lib datadir = ${prefix}/share mandir = ${prefix}/man includedir = ${prefix}/include DESTDIR = PKG_DIR = $(PACKAGE)$(VERSION) pkgdatadir = $(datadir)/$(PKG_DIR) pkglibdir = $(libdir)/$(PKG_DIR) pkgincludedir = $(includedir)/$(PKG_DIR) top_builddir = . INSTALL = /usr/bin/install -c -o root -g wheel INSTALL_PROGRAM = install -s -o root -g wheel -m 555 INSTALL_DATA = install -o root -g wheel -m 444 INSTALL_SCRIPT = install -o root -g wheel -m 555 TDOMSHELL = tcldomsh PACKAGE = tdom VERSION = 0.8.0 CC = cc CFLAGS_DEBUG = -g CFLAGS_WARNING = CFLAGS_DEFAULT = $(CFLAGS_OPTIMIZE) CFLAGS_OPTIMIZE = -O3 CLEANFILES = pkgIndex.tcl EXEEXT = LDFLAGS_DEBUG = LDFLAGS_DEFAULT = $(LDFLAGS_OPTIMIZE) LDFLAGS_OPTIMIZE = MAKE_LIB = ${SHLIB_LD} -o $@ $($(PACKAGE)_OBJECTS) ${SHLIB_LDFLAGS} ${SHLIB_LD_LIBS} MAKE_STUB_LIB = ${STLIB_LD} $@ $($(PACKAGE)stub_OBJECTS) MAKE_SHARED_LIB = ${SHLIB_LD} -o $@ $($(PACKAGE)_OBJECTS) ${SHLIB_LDFLAGS} ${SHLIB_LD_LIBS} MAKE_STATIC_LIB = ${STLIB_LD} $@ $($(PACKAGE)_OBJECTS) OBJEXT = RANLIB = : SHLIB_CFLAGS = -fno-common SHLIB_LD = cc -dynamiclib ${LDFLAGS} SHLIB_LDFLAGS = $(LDFLAGS_DEFAULT) SHLIB_LD_LIBS = ${LIBS} -L/System/Library/Frameworks/Tcl.framework/Versions/8.4 -ltclstub8.4 STLIB_LD = ${AR} cr TCL_DEFS = -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DHAVE_READDIR_R=1 -DMAC_OSX_TCL=1 -DHAVE_CFBUNDLE=1 -DUSE_VFORK=1 -DTCL_DEFAULT_ENCODING=\"utf-8\" -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DNO_VALUES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_PUTENV_THAT_COPIES=1 -DHAVE_LANGINFO=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_FILIO_H=1 TCL_BIN_DIR = /usr/lib TCL_SRC_DIR = /private/var/tmp/tcl/tcl-20/tcl/tcl TCL_DBGX = DL_LIBS = MATH_LIBS = -lm # This is necessary for packages that use private Tcl headers # TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ #======================================================================== # This is needed so we can link the custom shell # For runtime linker, you can extend/modify the LIB_RUNTIME_DIR to point # to a comma-separated list of directories for looking-up shared libs. #======================================================================== TCL_LIBS = ${DL_LIBS} ${LIBS} ${MATH_LIBS} TCL_LIB_SPEC = -framework Tcl LIB_RUNTIME_DIR = $(libdir) TDOM_LD_SEARCH_FLAGS = #======================================================================== # 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) TCLSH_ENV = TCL_LIBRARY=`echo $(TCL_SRC_DIR)/library` \ LD_LIBRARY_PATH="$(EXTRA_PATH):$(LD_LIBRARY_PATH)" \ LIBPATH="$(EXTRA_PATH):${LIBPATH}" \ SHLIB_PATH="$(EXTRA_PATH):${SHLIB_PATH}" \ PATH="$(EXTRA_PATH):$(PATH)" \ TCLLIBPATH="$(top_builddir)" TCLSH_PROG = /usr/lib/../bin/tclsh8.4 TCLSH = $(TCLSH_ENV) $(TCLSH_PROG) SHARED_BUILD = 1 INCLUDES = -I./../generic -I./../expat -I"/usr/include" EXTRA_CFLAGS = $(MEM_DEBUG_FLAGS) -arch ppc -pipe -DBYTEORDER=4321 DEFS = $(TCL_DEFS) -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_MEMMOVE=1 -DHAVE_BCOPY=1 -DVERSION=\"0.8.0\" -DUSE_TCL_STUBS=1 -DXML_DTD=1 -DXML_NS=1 -DTDOM_NO_UNKNOWN_CMD=1 -DWORDS_BIGENDIAN=1 CONFIG_CLEAN_FILES = Makefile tdomConfig.sh CPPFLAGS = LIBS = AR = ar CFLAGS = $(CFLAGS_OPTIMIZE) $(EXTRA_CFLAGS) $(SHLIB_CFLAGS) -DTCL_DBGX=$(TCL_DBGX) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(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 #======================================================================== # TDOM enabled shell is build as an extra directive, since non TEA. #======================================================================== $(TDOMSHELL): $(tdomsh_OBJECTS) $(tdom_OBJECTS) $(COMPILE) -c `echo tclAppInit.c` $(CC) -prebind -o $@ tclAppInit.$(OBJEXT) $(tdom_OBJECTS) \ $(TCL_LIBS) $(TCL_LIB_SPEC) $(LIBS) $(TDOM_LD_SEARCH_FLAGS) #======================================================================== # 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-hand libraries: doc: install: all install-binaries install-doc install-binaries: binaries install-lib-binaries install-bin-binaries @if test "x$(SHARED_BUILD)" = "x1"; then \ $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \ fi #======================================================================== # This rule installs platform-independent files, such as header files. #======================================================================== install-libraries: libraries @mkdir -p $(DESTDIR)$(includedir) @echo "Installing header files in $(DESTDIR)$(includedir)" @if test "x$(GENERIC_HDRS)" != "x"; then \ for i in $(GENERIC_HDRS) ; do \ echo " $(INSTALL_DATA) $$i" ; \ $(INSTALL_DATA) $$i $(DESTDIR)$(includedir) ; \ done; fi #======================================================================== # Install documentation. Unix manpages should go in the $(mandir) # directory. #======================================================================== install-doc: doc @mkdir -p $(DESTDIR)$(mandir)/mann @echo "Installing documentation in $(DESTDIR)$(mandir)" @for i in $(srcdir)/doc/*.n; do \ echo " $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann/`basename $$i`"; \ rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \ $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \ done #======================================================================== # To be able to "make test" *before* we did the "make install" # we must temporarily copy the Tcl part of the package in the # correct place, so the "package require" will be able to load # the package by using simple "package require tdom". #======================================================================== test: binaries libraries @for i in $(RUNTIME_SOURCES); do \ cp $(srcdir)/lib/$$i $(top_builddir)/; \ done $(TCLSH) `echo $(srcdir)/tests/all.tcl` $(TESTFLAGS) @for i in $(RUNTIME_SOURCES); do \ rm -rf $(top_builddir)/$$i; \ done shell: binaries libraries @$(TCLSH) $(SCRIPT) gdb: $(TCLSH_ENV) gdb $(TCLSH_PROG) $(SCRIPT) depend: #======================================================================== # $($(PACKAGE)_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 $($(PACKAGE)_OBJECTS) objects are created and linked into the final # library. In most cases these object files will correspond to the # source files above. #======================================================================== $($(PACKAGE)stub_LIB_FILE): $($(PACKAGE)stub_OBJECTS) -rm -f $($(PACKAGE)stub_LIB_FILE) ${MAKE_STUB_LIB} $(RANLIB) $($(PACKAGE)stub_LIB_FILE) $($(PACKAGE)_LIB_FILE): $($(PACKAGE)_OBJECTS) -rm -f $($(PACKAGE)_LIB_FILE) ${MAKE_LIB} $(RANLIB) $($(PACKAGE)_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 `echo $(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)/generic:$(srcdir)/expat:$(srcdir)/unix:$(srcdir)/win .c.$(OBJEXT): $(COMPILE) -c `echo $<` -o $@ #======================================================================== # Create the pkgIndex.tcl file. # It is usually easiest to let Tcl do this for you with pkg_mkIndex, but # you may find that you need to customize the package. If so, either # modify the -hand version, or create a pkgIndex.tcl.in file and have # the configure script output the pkgIndex.tcl by editing configure.in. #======================================================================== pkgIndex.tcl: @(echo pkg_mkIndex . $($(PACKAGE)_LIB_FILE) \; exit; ) | $(TCLSH) pkgIndex.tcl-hand: @(echo 'package ifneeded $(PACKAGE) $(VERSION)\ "load [list [file join $$dir $($(PACKAGE)_LIB_FILE)]];\ source [list [file join $$dir tdom.tcl]]"'\ ) > pkgIndex.tcl #======================================================================== # Distribution creation # You may need to tweak this target to make it work correctly. #======================================================================== COMPRESS = tar zcf $(DIST_FILE) --exclude='CVS' --exclude='\.*' $(PKG_DIR) DIST_ROOT = $(top_builddir)/dist DIST_DIR = $(DIST_ROOT)/$(PKG_DIR) DIST_FILE = $(PKG_DIR).tar.gz dist-clean: @rm -rf $(DIST_ROOT) dist: dist-clean @mkdir -p $(DIST_DIR)/tclconfig @mkdir -p $(DIST_DIR)/unix @mkdir -p $(DIST_DIR)/win @cp -p $(srcdir)/ChangeLog $(srcdir)/README* $(srcdir)/LICENSE \ $(srcdir)/NPL-1_1Final.html $(srcdir)/CHANGES \ $(srcdir)/configure-tcl8.0.5 $(srcdir)/tdom.m4 \ $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/*.in \ $(DIST_DIR)/ @cp $(srcdir)/tclconfig/install-sh $(srcdir)/tclconfig/tcl.m4 \ $(DIST_DIR)/tclconfig/ @chmod +x $(DIST_DIR)/tclconfig/install-sh @cp -p $(srcdir)/unix/CONFIG $(srcdir)/unix/tclAppInit.c \ $(DIST_DIR)/unix/ @cp -p $(srcdir)/win/config.h $(srcdir)/win/makefile.vc \ $(srcdir)/win/makefile805.vc $(DIST_DIR)/win/ @(list='apps doc encodings expat extensions generic lib mac macosx tests xe'; \ for p in $$list; do \ if test -d $(srcdir)/$$p ; then \ cp -pr $(srcdir)/$$p $(DIST_DIR)/; \ fi; \ done; \ (cd $(DIST_ROOT); $(COMPRESS); rm -rf $(PKG_DIR))) @echo "Distribution file is $(DIST_ROOT)/$(DIST_FILE)" #======================================================================== # 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) -test -z "$(TDOMSHELL)" || rm -f $(TDOMSHELL) -rm -f *.$(OBJEXT) core *.core -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean: clean dist-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: @echo "Installing library files in $(pkglibdir)" @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='$(RUNTIME_SOURCES)'; for p in $$list; do \ if test -f $(srcdir)/lib/$$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/lib/$$p $(DESTDIR)$(pkglibdir)/$$p; \ fi; \ done @list='tdomConfig.sh'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ 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: @echo "Installing executables in $(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='$(RUNTIME_SOURCES)'; for p in $$list; do \ 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: