summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordas <das>2003-07-15 01:15:50 (GMT)
committerdas <das>2003-07-15 01:15:50 (GMT)
commit31c35e733420b0c01d999231db47d29658d16ef0 (patch)
treefe5eb048ea5a13d64dd3cb6f5af7bfaa2709ecec
parent250027ef0bfbf32be0bf0910fea7c0b44d03d60a (diff)
downloadtcl-31c35e733420b0c01d999231db47d29658d16ef0.zip
tcl-31c35e733420b0c01d999231db47d29658d16ef0.tar.gz
tcl-31c35e733420b0c01d999231db47d29658d16ef0.tar.bz2
* macosx/Makefile: Rewrote buildsystem for Mac OS X framework build
to be purely make driven; in order to become independent of Apple's closed-source IDE and build tool. The changes are intended to be transparent to the Makefile user, all existing make targets and cmd line variable overrides should continue to work. Changed build to only include tcl specific html help in Tcl.framework, the tk specific html help is now included in Tk.framework. * macosx/Tcl.pbproj/project.pbxproj: * macosx/Tcl.pbproj/jingham.pbxuser: Changed to purely call through to the make driven buildsystem; Tcl.framework is no longer assembled by ProjectBuilder. Set default SYMROOT in target options to simplify setting up PB (manually setting common build folder for tcl & tk no longer needed). * tools/tcltk-man2html.tcl: Added options to allow building only the tcl or tk html help files; the default behaviour with none of the new options is to build both, as before. * unix/Makefile.in: Added targets for building only the tcl or tk help. * macosx/README (new): Tcl specific excerpts of tk/macosx/README. * generic/tcl.h: Updated reminder comment about editing macosx/Tcl.pbproj/project.pbxproj when version number changes.
-rw-r--r--ChangeLog28
-rw-r--r--generic/tcl.h5
-rw-r--r--macosx/Makefile280
-rw-r--r--macosx/README120
-rw-r--r--macosx/Tcl.pbproj/jingham.pbxuser440
-rw-r--r--macosx/Tcl.pbproj/project.pbxproj355
-rwxr-xr-xtools/tcltk-man2html.tcl63
-rw-r--r--unix/Makefile.in9
8 files changed, 496 insertions, 804 deletions
diff --git a/ChangeLog b/ChangeLog
index e6e44ae..53fdacc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2003-07-15 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/Makefile: Rewrote buildsystem for Mac OS X framework build
+ to be purely make driven; in order to become independent of Apple's
+ closed-source IDE and build tool. The changes are intended to be
+ transparent to the Makefile user, all existing make targets and
+ cmd line variable overrides should continue to work.
+ Changed build to only include tcl specific html help in Tcl.framework,
+ the tk specific html help is now included in Tk.framework.
+
+ * macosx/Tcl.pbproj/project.pbxproj:
+ * macosx/Tcl.pbproj/jingham.pbxuser: Changed to purely call through
+ to the make driven buildsystem; Tcl.framework is no longer assembled
+ by ProjectBuilder.
+ Set default SYMROOT in target options to simplify setting up PB
+ (manually setting common build folder for tcl & tk no longer needed).
+
+ * tools/tcltk-man2html.tcl: Added options to allow building only the
+ tcl or tk html help files; the default behaviour with none of the new
+ options is to build both, as before.
+
+ * unix/Makefile.in: Added targets for building only the tcl or tk help.
+
+ * macosx/README (new): Tcl specific excerpts of tk/macosx/README.
+
+ * generic/tcl.h: Updated reminder comment about editing
+ macosx/Tcl.pbproj/project.pbxproj when version number changes.
+
2003-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
* tests/binary.test (binary-46.*): Tests to help enforce the
diff --git a/generic/tcl.h b/generic/tcl.h
index f3d9dab..7d671e0 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tcl.h,v 1.153.2.3 2003/05/15 18:59:37 hobbs Exp $
+ * RCS: @(#) $Id: tcl.h,v 1.153.2.4 2003/07/15 01:15:50 das Exp $
*/
#ifndef _TCL
@@ -46,8 +46,7 @@ extern "C" {
* win/makefile.vc (not patchlevel) 2 LOC
* README (sections 0 and 2)
* mac/README (2 LOC, not patchlevel)
- * macosx/Tcl.pbproj/project.pbxproj
- * (7 LOC total, 2 LOC patch)
+ * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 2 LOC
* win/README.binary (sections 0-4)
* win/README (not patchlevel) (sections 0 and 2)
* unix/tcl.spec (2 LOC Major/Minor, 1 LOC patch)
diff --git a/macosx/Makefile b/macosx/Makefile
index fec1e4b..3ae458a 100644
--- a/macosx/Makefile
+++ b/macosx/Makefile
@@ -1,87 +1,221 @@
-################################################################################
+########################################################################################################
#
-# Simple makefile for building on Mac OS X with the
-# Project Builder command line tool 'pbxbuild'
+# Makefile to build Tcl on Mac OS X packaged as a Framework
+# uses standard unix build system in tcl/unix
#
-# RCS: @(#) $Id: Makefile,v 1.5 2003/02/19 16:43:29 das Exp $
+# RCS: @(#) $Id: Makefile,v 1.5.2.1 2003/07/15 01:15:51 das Exp $
#
-################################################################################
+########################################################################################################
-INSTALL_ROOT ?=
+#-------------------------------------------------------------------------------------------------------
+# customizable settings
-BUILD_DIR ?= ${CURDIR}/../../build
+DESTDIR ?=
+INSTALL_ROOT ?= ${DESTDIR}
-TARGET = Tcl
+BUILD_DIR ?= ${CURDIR}/../../build
+SYMROOT ?= ${BUILD_DIR}/${PROJECT}
+OBJROOT ?= ${SYMROOT}
-DEVBUILDSTYLE = Development
-DEPBUILDSTYLE = Deployment
+EXTRA_CONFIGURE_ARGS ?=
+EXTRA_MAKE_ARGS ?=
-PBXBUILD = /usr/bin/pbxbuild
+INSTALL_PATH ?= /Library/Frameworks
+PREFIX ?= /usr
+BINDIR ?= ${PREFIX}/bin
-BUILD = ${PBXBUILD} SYMROOT="${BUILD_DIR}" -target "${TARGET}"
+TCL_PACKAGE_PATH ?= "~/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl \
+ ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks \
+ /System/Library/Frameworks"
-DEVBUILD = ${BUILD} -buildstyle "${DEVBUILDSTYLE}"
-DEPBUILD = ${BUILD} -buildstyle "${DEPBUILDSTYLE}"
+#-------------------------------------------------------------------------------------------------------
+# meta targets
-INSTALLOPTS = INSTALL_ROOT="${INSTALL_ROOT}"
+meta := all install embedded install-embedded clean distclean
-EMBEDDEDOPTS = EMBEDDED_BUILD=1
+styles := develop deploy
-################################################################################
+all := ${styles}
+all : ${all}
-all: develop deploy
-
-install: install-develop install-deploy
-
-embedded: embedded-deploy
-
-install-embedded: install-embedded-deploy
-
-clean: clean-develop clean-deploy
-
-################################################################################
-
-develop:
- ${DEVBUILD}
-
-deploy:
- ${DEPBUILD}
-
-install-develop:
- ${DEVBUILD} install ${INSTALLOPTS}
-
-install-deploy:
- ${DEPBUILD} install ${INSTALLOPTS}
-
-embedded-develop:
- ${DEVBUILD} ${EMBEDDEDOPTS}
-
-embedded-deploy:
- ${DEPBUILD} ${EMBEDDEDOPTS}
-
-install-embedded-develop:
- ${DEVBUILD} install ${INSTALLOPTS} ${EMBEDDEDOPTS}
-
-install-embedded-deploy:
- ${DEPBUILD} install ${INSTALLOPTS} ${EMBEDDEDOPTS}
-
-clean-develop:
- ${DEVBUILD} clean
-
-clean-deploy:
- ${DEPBUILD} clean
-
-################################################################################
-
-forceRelink:
- @-cd ${BUILD_DIR}; \
- rm -rf Tcl.framework tclsh8.4 \
- Development.build/Tcl.build/Tcl Deployment.build/Tcl.build/Tcl
-
-################################################################################
-
-.PHONY: all install embedded clean develop deploy install-develop install-deploy \
-embedded-develop embedded-deploy install-embedded-develop install-embedded-deploy \
-clean-develop clean-deploy forceRelink \
-
-################################################################################
+install := ${styles:%=install-%}
+install : ${install}
+install-%: action := install-
+
+embedded := ${styles:%=embedded-%}
+embedded : embedded-deploy
+install-embedded := $(embedded:%=install-%)
+install-embedded : install-embedded-deploy
+
+clean := ${styles:%=clean-%}
+clean : ${clean}
+clean-%: action := clean-
+distclean := ${styles:%=distclean-%}
+distclean : ${distclean}
+distclean-%: action := distclean-
+
+targets := $(foreach v,${meta},${$v})
+
+#-------------------------------------------------------------------------------------------------------
+# build styles
+
+develop_make_args := BUILD_STYLE=Development CONFIGURE_ARGS=--enable-symbols
+deploy_make_args := BUILD_STYLE=Deployment \
+ MAKE_ARGS=INSTALL_PROGRAM="'$$\$${INSTALL} $$\$${INSTALL_STRIP_PROGRAM}'" \
+ MAKE_ARGS+=INSTALL_LIBRARY="'$$\$${INSTALL} $$\$${INSTALL_STRIP_LIBRARY}'"
+embedded_make_args := EMBEDDED_BUILD=1
+install_make_args := INSTALL_BUILD=1
+
+$(targets):
+ ${MAKE} ${action}${PROJECT} \
+ $(foreach s,${styles} embedded install,$(if $(findstring $s,$@),${${s}_make_args}))
+
+#-------------------------------------------------------------------------------------------------------
+# project specific settings
+
+PROJECT := tcl
+PRODUCT_NAME := Tcl
+
+UNIX_DIR := ${CURDIR}/../unix
+GENERIC_DIR := ${CURDIR}/../generic
+
+PRODUCT_VERSION := $(shell eval $$(grep '^TCL_VERSION=' ${UNIX_DIR}/configure.in); \
+ echo "$${TCL_VERSION}")
+PRODUCT_LONGVERSION := $(shell eval $$(grep '^TCL_PATCH_LEVEL=' ${UNIX_DIR}/configure.in); \
+ echo "${PRODUCT_VERSION}$${TCL_PATCH_LEVEL}")
+
+PRIVATE_HEADERS := tclInt.h tclIntDecls.h tclIntPlatDecls.h tclMath.h
+TARGETS := tclsh tcltest
+TCLSH := tclsh${PRODUCT_VERSION}
+
+DYLIB_INSTALL_PATH ?= ${INSTALL_PATH}
+
+TCL_LIBRARY := @TCL_IN_FRAMEWORK@
+LIBDIR := ${INSTALL_PATH}/${PRODUCT_NAME}.framework/Versions/${PRODUCT_VERSION}
+DYLIB_INSTALL_DIR := ${DYLIB_INSTALL_PATH}/${PRODUCT_NAME}.framework/Versions/${PRODUCT_VERSION}
+INCLUDEDIR := ${LIBDIR}/Headers
+PRIVATEINCLUDEDIR := ${LIBDIR}/PrivateHeaders
+SCRIPTDIR := ${LIBDIR}/Resources/Scripts
+DOCDIR := ${LIBDIR}/Resources/English.lproj/Documentation/Reference
+INFOPLIST := ${LIBDIR}/Resources/Info.plist
+
+BUILD_STYLE =
+OBJ_DIR = ${OBJROOT}/${BUILD_STYLE}
+
+${PROJECT}: override INSTALL_ROOT = ${OBJ_DIR}/
+
+MAKE_VARS := INSTALL_ROOT TCL_PACKAGE_PATH TCL_LIBRARY DYLIB_INSTALL_DIR
+MAKE_ARGS_V = $(foreach v,${MAKE_VARS},$v=${$v})
+export CPPROG := cp -p
+
+#-------------------------------------------------------------------------------------------------------
+# build rules
+
+${PROJECT}: install-${PROJECT}
+
+${OBJ_DIR}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure
+ mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && ${UNIX_DIR}/configure \
+ --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --includedir=${INCLUDEDIR} \
+ --enable-threads --enable-framework ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}
+ cd ${OBJ_DIR} && mkdir -p ${PRODUCT_NAME}.framework && \
+ ln -fs ../${PRODUCT_NAME} ${PRODUCT_NAME}.framework/${PRODUCT_NAME}
+
+build-${PROJECT}: ${OBJ_DIR}/Makefile
+ ${MAKE} -C ${OBJ_DIR} ${TARGETS} ${MAKE_ARGS_V} ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
+# symolic link hackery to trick
+# 'make install INSTALL_ROOT=${OBJ_DIR}'
+# into building Tcl.framework and tclsh in ${SYMROOT}
+ cd ${OBJ_DIR}; mkdir -p $(dir ./${INSTALL_PATH}) $(dir ./${BINDIR}); \
+ rm -f ./${INSTALL_PATH}; ln -fs ${SYMROOT} ./${INSTALL_PATH}; \
+ rm -f ./${BINDIR}; ln -fs ${SYMROOT} ./${BINDIR}; \
+ ln -fs ${OBJ_DIR}/tcltest ${SYMROOT}
+
+clean-${PROJECT}:
+ ${MAKE} -C ${OBJ_DIR} clean
+
+distclean-${PROJECT}:
+ ${MAKE} -C ${OBJ_DIR} distclean
+ rm -rf ${OBJ_DIR} ${PRODUCT_NAME}.framework tclsh${PRODUCT_VERSION} tcltest
+
+install-${PROJECT}: build-${PROJECT}
+# install to ${INSTALL_ROOT} with optional stripping
+ ${MAKE} -C ${OBJ_DIR} install-binaries install-libraries \
+ SCRIPT_INSTALL_DIR=${INSTALL_ROOT}${SCRIPTDIR} ${MAKE_ARGS_V} ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
+ mkdir -p ${INSTALL_ROOT}${PRIVATEINCLUDEDIR} && \
+ cd ${GENERIC_DIR} && ${CPPROG} ${PRIVATE_HEADERS} ${INSTALL_ROOT}${PRIVATEINCLUDEDIR}
+ifeq (${BUILD_STYLE},Development)
+# keep copy of debug library around, so that
+# Deployment build can be installed on top
+# of Development build without overwriting
+# the debug library
+ cd ${INSTALL_ROOT}${LIBDIR} && ln -f "${PRODUCT_NAME}" "${PRODUCT_NAME}_debug"
+endif
+# fixup Framework structure
+ cd ${INSTALL_ROOT}${LIBDIR}/.. && \
+ rm -f Current && ln -fs ${PRODUCT_VERSION} Current && \
+ cd .. && ln -fs Versions/Current/* . && \
+ ln -fs Versions/${PRODUCT_VERSION}/lib*stub* .
+ifeq (${INSTALL_BUILD},1)
+ifeq (${EMBEDDED_BUILD},1)
+# if we are embedding frameworks, don't install tclsh
+ rm -f "${INSTALL_ROOT}/${BINDIR}/${TCLSH}"
+ -rmdir -p "${INSTALL_ROOT}/${BINDIR}" 2>&-
+else
+# redo prebinding
+ cd ${INSTALL_ROOT}; \
+ if [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi; \
+ if [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi; \
+ redo_prebinding -r . "./${BINDIR}/${TCLSH}"; \
+ if [ -n "$${RM_USRLIB:-}" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi; \
+ if [ -n "$${RM_SYSTEM:-}" ]; then rm -f System; fi
+# install tclsh symbolic link
+ mkdir -p ${INSTALL_ROOT}/usr/bin && \
+ ln -fs ${TCLSH} ${INSTALL_ROOT}/${BINDIR}/tclsh
+ifeq (${BUILD_STYLE},Deployment)
+# build html documentation
+ export DYLD_FRAMEWORK_PATH=${SYMROOT} && \
+ ${MAKE} -C ${OBJ_DIR} html-tcl \
+ DISTDIR=${INSTALL_ROOT}${DOCDIR} TCL_EXE=${SYMROOT}/${TCLSH} && \
+ cd ${INSTALL_ROOT}${DOCDIR} && ln -fs contents.htm html/${PRODUCT_NAME}TOC.html && \
+ rm -fr "${PRODUCT_NAME}" && mv -f html "${PRODUCT_NAME}"
+endif
+endif
+endif
+# write Info.plist file
+ @printf > ${INSTALL_ROOT}${INFOPLIST} '\
+ <?xml version="1.0" encoding="UTF-8"?>\n\
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"\
+ "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n\
+ <plist version="1.0">\n\
+ <dict>\n\
+ <key>CFBundleDevelopmentRegion</key>\n\
+ <string>English</string>\n\
+ <key>CFBundleExecutable</key>\n\
+ <string>Tcl</string>\n\
+ <key>CFBundleGetInfoString</key>\n\
+ <string>Tcl Library ${PRODUCT_VERSION}, Copyright © 2003 Tcl Core Team.\n\
+ MacOS X Port by Jim Ingham &lt;jingham@apple.com&gt; &amp; Ian Reid, Copyright\
+ © 2001-2002, Apple Computer, Inc.</string>\n\
+ <key>CFBundleIdentifier</key>\n\
+ <string>com.tcltk.tcllibrary</string>\n\
+ <key>CFBundleInfoDictionaryVersion</key>\n\
+ <string>6.0</string>\n\
+ <key>CFBundleName</key>\n\
+ <string>Tcl Library ${PRODUCT_VERSION}</string>\n\
+ <key>CFBundlePackageType</key>\n\
+ <string>FMWK</string>\n\
+ <key>CFBundleShortVersionString</key>\n\
+ <string>${PRODUCT_LONGVERSION}</string>\n\
+ <key>CFBundleSignature</key>\n\
+ <string>Tcl </string>\n\
+ <key>CFBundleVersion</key>\n\
+ <string>${PRODUCT_LONGVERSION}</string>\n\
+ </dict>\n\
+ </plist>\n'
+
+#-------------------------------------------------------------------------------------------------------
+
+.PHONY: ${meta} ${targets} ${PROJECT} build-${PROJECT} install-${PROJECT} \
+ clean-${PROJECT} distclean-${PROJECT}
+
+#-------------------------------------------------------------------------------------------------------
diff --git a/macosx/README b/macosx/README
new file mode 100644
index 0000000..ced6d99
--- /dev/null
+++ b/macosx/README
@@ -0,0 +1,120 @@
+Tcl MacOSX README
+-----------------
+
+RCS: @(#) $Id: README,v 1.1.2.1 2003/07/15 01:15:51 das Exp $
+
+This is the README file for the Mac OS X native version of Tcl (framework build).
+
+
+1. General
+----------
+
+- The tcl-mac mailing list on sourceforge is the canonical place for questions
+specific to Tcl & Tk on Mac OS X:
+ http://lists.sourceforge.net/lists/listinfo/tcl-mac
+(this page also has a link to searchable archives of the list, please check them
+before asking on the list, many questions have already been answered).
+
+- For general tcl/tk questions, the newsgroup comp.lang.tcl is your best bet,
+but also check the Tcl'ers Wiki for a wealth of information:
+ http://wiki.tcl.tk/
+
+- The wiki has a page listing known bugs in Mac OS X Tcl/Tk (and other tips)
+ http://wiki.tcl.tk/MacOS%20X
+as well as a page with info on building Tcl/Tk on Mac OS X
+ http://wiki.tcl.tk/Steps%20to%20build%20Tcl/Tk%208.4.0%20on%20MacOS%20X
+
+- You should report bugs to the sourceforge bug trackers as usual:
+ Tcl: https://sourceforge.net/tracker/?func=add&group_id=10894&atid=110894
+ Tk: https://sourceforge.net/tracker/?func=add&group_id=12997&atid=112997
+please make sure that your report Tk specific bugs to the tktoolkit bug
+tracker and not the tcl one.
+
+
+2. Using Tcl on MacOSX
+----------------------
+
+- Mac OS X 10.1 (or higher) is required to run Tcl on MacOSX.
+
+- Tcl built on Mac OS X 10.2 or higher will not run on 10.1 due to missing
+symbols in libSystem, however Tcl built on 10.1 will run on 10.2 (but without
+prebinding and other optimizations).
+
+- Tcl extensions will be found in any of:
+ $HOME/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl
+ $HOME/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks
+ /System/Library/Frameworks (searched in that order).
+Given a potential package directory $pkg, Tcl on OSX checks for the file
+$pkg/Resources/Scripts/pkgIndex.tcl as well as the usual $pkg/pkgIndex.tcl.
+This allows building extensions as frameworks with all script files contained
+in the Resources/Scripts directory of the framework.
+
+- The Tcl framework contains documentation in html format in the
+standard location for frameworks:
+ Tcl.framework/Resources/English.lproj/Documentation/Reference/Tcl
+No manpages are installed by default.
+
+- the framework Tcl.framework can be placed in any of the system's standard
+framework directories:
+ $HOME/Library/Frameworks /Library/Frameworks
+ /Network/Library/Frameworks /System/Library/Frameworks
+and /usr/bin/tclsh will work.
+
+- the format of binary extensions expected by [load] is that of ordinary shared
+libraries (.dylib) and not MachO bundles, at present loading of MachO bundles is
+not supported.
+
+
+3. Building Tcl.framework
+-------------------------
+
+- Mac OS X 10.1.5 (or higher) is required to build Tcl on MacOSX.
+
+- Apple's Developer Tools CD needs to be installed (the version matching your OS
+release, but no earlier than April 2002). This CD should have come with Mac OS X
+retail or should be present as a disk image on new macs that came with OSX
+preinstalled. It can also be downloaded from http://connect.apple.com (after you
+register for free ADC membership).
+
+- Tcl is built as a Mac OS X framework via the Makefile in tcl/macosx, but can
+also be built from Apple's ProjectBuilder IDE using the Tcl.pbproj project (which
+calls through to the Makefile).
+
+- Unpack the tcl source release archive.
+
+- The following instructions assume the tcl source tree is named "tcl${ver}",
+where ${ver} is a shell variable containing the tcl version number (for
+example '8.4.2').
+Setup the shell variable as follows:
+ set ver="8.4.2" ;: if your shell is csh
+ ver="8.4.2" ;: if your shell is sh
+The source tree will be named this way only if you are building from a release
+archive, if you are building from CVS, the version numbers will be missing; so
+set ${ver} to the empty string instead:
+ set ver="" ;: if your shell is csh
+ ver="" ;: if your shell is sh
+
+- If you're only interested in _building_ Tcl.framework and don't plan on doing
+development with the ProjectBuilder projects, using the Makefile is easiest.
+The following steps will build Tcl from the Terminal, assuming you are
+located in the directory containing the tcl source tree:
+ make -C tcl${ver}/macosx
+and the following will then install Tcl onto the root volume (admin password
+required):
+ sudo make -C tcl${ver}/macosx install
+if you don't have the admin password, you can install into your home directory,
+instead by passing an INSTALL_ROOT argument to make:
+ make -C tcl${ver}/macosx install INSTALL_ROOT="${HOME}/"
+
+- The default Makefile targets will build _both_ debug and optimized versions of
+the Tcl framework with the standard convention of naming the debug
+library Tcl.framework/Tcl_debug.
+This allows you to dynamically link to the debug libraries at runtime by setting
+ setenv DYLD_IMAGE_SUFFIX _debug
+(c.f. man dyld for more details)
+
+If you only want to build and install the debug or optimized build, use the
+'develop' or 'deploy' target variants of the Makefiles, respectively.
+For example, to build and install only the optimized versions:
+ make -C tcl${ver}/macosx deploy
+ sudo make -C tcl${ver}/macosx install-deploy
diff --git a/macosx/Tcl.pbproj/jingham.pbxuser b/macosx/Tcl.pbproj/jingham.pbxuser
index d914578..10f0b57 100644
--- a/macosx/Tcl.pbproj/jingham.pbxuser
+++ b/macosx/Tcl.pbproj/jingham.pbxuser
@@ -1,405 +1,79 @@
// !$*UTF8*$!
{
- 005751AA02FB00930AC916F0 = {
- fRef = 005751AB02FB00930AC916F0;
- isa = PBXTextBookmark;
- name = "DefaultsDoc.rtf: 30";
- rLen = 32;
- rLoc = 2777;
- rType = 0;
- vrLen = 1334;
- vrLoc = 2136;
- };
- 005751AB02FB00930AC916F0 = {
- isa = PBXFileReference;
- name = DefaultsDoc.rtf;
- path = "/Developer/Applications/Project Builder.app/Contents/Resources/DefaultsDoc.rtf";
- refType = 0;
- };
00E2F845016E82EB0ACA28DC = {
activeBuildStyle = 00E2F847016E82EB0ACA28DC;
- activeTarget = F50DC359017027D801DC9062;
- addToTargets = (
- 00E2F84C016E8B780ACA28DC,
- );
+ activeExecutable = F9A61CCE04C2B5A8006F5A0B;
+ activeTarget = 00E2F84C016E8B780ACA28DC;
breakpoints = (
);
+ executables = (
+ F9A61CCE04C2B5A8006F5A0B,
+ F973FC3204852E75006F146B,
+ );
perUserDictionary = {
- PBXPerProjectTemplateStateSaveDate = 49920633;
- "PBXTemplateGeometry-F5314676015831810DCA290F" = {
- ContentSize = "{789, 551}";
- LeftSlideOut = {
- Collapsed = NO;
- Frame = "{{0, 23}, {789, 528}}";
- Split0 = {
- ActiveTab = 2;
- Collapsed = NO;
- Frame = "{{0, 0}, {789, 528}}";
- Split0 = {
- Frame = "{{0, 204}, {789, 324}}";
- };
- SplitCount = 1;
- Tab0 = {
- Debugger = {
- Collapsed = NO;
- Frame = "{{0, 0}, {952, 321}}";
- Split0 = {
- Frame = "{{0, 24}, {952, 297}}";
- Split0 = {
- Frame = "{{0, 0}, {468, 297}}";
- };
- Split1 = {
- DebugVariablesTableConfiguration = (
- Name,
- 123,
- Value,
- 85,
- Summary,
- 241.123,
- );
- Frame = "{{477, 0}, {475, 297}}";
- };
- SplitCount = 2;
- };
- SplitCount = 1;
- Tab0 = {
- Frame = "{{0, 0}, {100, 50}}";
- };
- Tab1 = {
- Frame = "{{0, 0}, {100, 50}}";
- };
- TabCount = 2;
- TabsVisible = YES;
- };
- Frame = "{{0, 0}, {952, 321}}";
- LauncherConfigVersion = 7;
- };
- Tab1 = {
- Frame = "{{0, 0}, {781, 452}}";
- LauncherConfigVersion = 3;
- Runner = {
- Frame = "{{0, 0}, {781, 452}}";
- };
- };
- Tab2 = {
- BuildMessageFrame = "{{0, 0}, {791, 191}}";
- BuildTranscriptFrame = "{{0, 200}, {791, 0}}";
- Frame = "{{0, 0}, {789, 198}}";
- };
- Tab3 = {
- Frame = "{{0, 0}, {612, 295}}";
- };
- TabCount = 4;
- TabsVisible = NO;
- };
- SplitCount = 1;
- Tab0 = {
- Frame = "{{0, 0}, {300, 533}}";
- GroupTreeTableConfiguration = (
- TargetStatusColumn,
- 18,
- MainColumn,
- 267,
- );
- };
- Tab1 = {
- ClassesFrame = "{{0, 0}, {280, 398}}";
- ClassesTreeTableConfiguration = (
- PBXBookColumnIdentifier,
- 20,
- PBXClassColumnIdentifier,
- 237,
- );
- Frame = "{{0, 0}, {278, 659}}";
- MembersFrame = "{{0, 407}, {280, 252}}";
- MembersTreeTableConfiguration = (
- PBXBookColumnIdentifier,
- 20,
- PBXMethodColumnIdentifier,
- 236,
- );
- };
- Tab2 = {
- Frame = "{{0, 0}, {200, 100}}";
- };
- Tab3 = {
- Frame = "{{0, 0}, {200, 100}}";
- TargetTableConfiguration = (
- ActiveObject,
- 16,
- ObjectNames,
- 202.296,
- );
- };
- Tab4 = {
- BreakpointsTreeTableConfiguration = (
- breakpointColumn,
- 197,
- enabledColumn,
- 31,
- );
- Frame = "{{0, 0}, {250, 100}}";
- };
- TabCount = 5;
- TabsVisible = NO;
- };
- StatusViewVisible = YES;
- Template = F5314676015831810DCA290F;
- ToolbarVisible = YES;
- WindowLocation = "{7, 385}";
- };
- PBXWorkspaceContents = (
- {
- LeftSlideOut = {
- Split0 = {
- Split0 = {
- NavContent0 = {
- bookmark = 005751AA02FB00930AC916F0;
- history = (
- F5BFE56402F8B7A901DC9062,
- F5BFE56702F8B7A901DC9062,
- 00F4D9CE02F9BA490AC916F0,
- );
- prevStack = (
- F5BFE56A02F8B7A901DC9062,
- );
- };
- NavCount = 1;
- NavGeometry0 = {
- Frame = "{{0, 0}, {571, 548}}";
- NavBarVisible = YES;
- };
- };
- SplitCount = 1;
- Tab0 = {
- Debugger = {
- Split0 = {
- SplitCount = 2;
- };
- SplitCount = 1;
- TabCount = 2;
- };
- LauncherConfigVersion = 7;
- };
- Tab1 = {
- LauncherConfigVersion = 3;
- Runner = {
- };
- };
- TabCount = 4;
- };
- SplitCount = 1;
- Tab1 = {
- OptionsSetName = "Default Options";
- };
- TabCount = 5;
- };
- },
- );
- PBXWorkspaceGeometries = (
- {
- ContentSize = "{855, 571}";
- LeftSlideOut = {
- ActiveTab = 0;
- Collapsed = NO;
- Frame = "{{0, 23}, {855, 548}}";
- Split0 = {
- Collapsed = NO;
- Frame = "{{284, 0}, {571, 548}}";
- Split0 = {
- Frame = "{{0, 0}, {571, 548}}";
- };
- SplitCount = 1;
- Tab0 = {
- Debugger = {
- Collapsed = NO;
- Frame = "{{0, 0}, {681, 289}}";
- Split0 = {
- Frame = "{{0, 24}, {681, 265}}";
- Split0 = {
- Frame = "{{0, 0}, {333, 265}}";
- };
- Split1 = {
- DebugVariablesTableConfiguration = (
- Name,
- 82.80298,
- Value,
- 104.074,
- Summary,
- 126.123,
- );
- Frame = "{{342, 0}, {339, 265}}";
- };
- SplitCount = 2;
- };
- SplitCount = 1;
- Tab0 = {
- Frame = "{{0, 0}, {100, 50}}";
- };
- Tab1 = {
- Frame = "{{0, 0}, {100, 50}}";
- };
- TabCount = 2;
- TabsVisible = YES;
- };
- Frame = "{{0, 0}, {681, 289}}";
- LauncherConfigVersion = 7;
- };
- Tab1 = {
- Frame = "{{0, 0}, {681, 120}}";
- LauncherConfigVersion = 3;
- Runner = {
- Frame = "{{0, 0}, {681, 120}}";
- };
- };
- Tab2 = {
- BuildMessageFrame = "{{0, 0}, {683, 127}}";
- BuildTranscriptFrame = "{{0, 136}, {683, 100}}";
- Frame = "{{0, 0}, {681, 234}}";
- };
- Tab3 = {
- Frame = "{{0, 0}, {681, 238}}";
- };
- TabCount = 4;
- TabsVisible = NO;
- };
- SplitCount = 1;
- Tab0 = {
- Frame = "{{0, 0}, {260, 548}}";
- GroupTreeTableConfiguration = (
- SCMStatusColumn,
- 22,
- TargetStatusColumn,
- 18,
- MainColumn,
- 205,
- );
- };
- Tab1 = {
- ClassesFrame = "{{0, 0}, {250, 333}}";
- ClassesTreeTableConfiguration = (
- PBXBookColumnIdentifier,
- 20,
- PBXClassColumnIdentifier,
- 207,
- );
- Frame = "{{0, 0}, {248, 554}}";
- MembersFrame = "{{0, 342}, {250, 212}}";
- MembersTreeTableConfiguration = (
- PBXBookColumnIdentifier,
- 20,
- PBXMethodColumnIdentifier,
- 206,
- );
- };
- Tab2 = {
- Frame = "{{0, 0}, {217, 554}}";
- };
- Tab3 = {
- Frame = "{{0, 0}, {239, 548}}";
- TargetTableConfiguration = (
- ActiveObject,
- 16,
- ObjectNames,
- 206,
- );
- };
- Tab4 = {
- BreakpointsTreeTableConfiguration = (
- breakpointColumn,
- 197,
- enabledColumn,
- 31,
- );
- Frame = "{{0, 0}, {250, 554}}";
- };
- TabCount = 5;
- TabsVisible = YES;
- };
- StatusViewVisible = YES;
- Template = 64ABBB4501FA494900185B06;
- ToolbarVisible = YES;
- WindowLocation = "{77, 330}";
- },
- );
- PBXWorkspaceStateSaveDate = 49920633;
- };
- perUserProjectItems = {
- 005751AA02FB00930AC916F0 = 005751AA02FB00930AC916F0;
- 00F4D9CE02F9BA490AC916F0 = 00F4D9CE02F9BA490AC916F0;
- F5BFE56402F8B7A901DC9062 = F5BFE56402F8B7A901DC9062;
- F5BFE56702F8B7A901DC9062 = F5BFE56702F8B7A901DC9062;
- F5BFE56A02F8B7A901DC9062 = F5BFE56A02F8B7A901DC9062;
+ PBXPerProjectTemplateStateSaveDate = 79872121;
};
projectwideBuildSettings = {
- OBJROOT = "/Volumes/TheCloset/jingham/tcl-tk/source/tcl-merge/Objects";
- SYMROOT = "/Volumes/TheCloset/jingham/tcl-tk/source/tcl-merge/Products";
+ SYMROOT = "${SRCROOT}/../../build/tcl";
};
wantsIndex = 1;
- wantsSCM = 1;
- };
- 00E2F84B016E8A830ACA28DC = {
- activeExec = 0;
+ wantsSCM = -1;
};
00E2F84C016E8B780ACA28DC = {
activeExec = 0;
};
- 00E2F84E016E92110ACA28DC = {
- activeExec = 0;
- };
- 00F4D9CE02F9BA490AC916F0 = {
- fRef = 00F4D9CF02F9BA4A0AC916F0;
- isa = PBXTextBookmark;
- name = "DefaultsDoc.rtf: 30";
- rLen = 32;
- rLoc = 2777;
- rType = 0;
- vrLen = 1334;
- vrLoc = 2136;
+ F973FC3204852E75006F146B = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ launchableReference = F9A61CCD04C2B5A5006F5A0B;
+ name = tclsh8.4;
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
};
- 00F4D9CF02F9BA4A0AC916F0 = {
+ F9A61CCD04C2B5A5006F5A0B = {
isa = PBXFileReference;
- name = DefaultsDoc.rtf;
- path = "/Developer/Applications/Project Builder.app/Contents/Resources/DefaultsDoc.rtf";
- refType = 0;
- };
- F50DC359017027D801DC9062 = {
- activeExec = 0;
- };
- F5BFE56402F8B7A901DC9062 = {
- fRef = F5BFE56E02F8B7AA01DC9062;
- isa = PBXTextBookmark;
- name = "stat.h: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 1666;
- vrLoc = 3618;
- };
- F5BFE56702F8B7A901DC9062 = {
- fRef = F5F24F6E016ECAA401DC9062;
- isa = PBXTextBookmark;
- name = "tcl.h: 397";
- rLen = 6;
- rLoc = 11199;
- rType = 0;
- vrLen = 1293;
- vrLoc = 10644;
+ name = tclsh8.4;
+ path = ../../build/tcl/tclsh8.4;
+ refType = 4;
};
- F5BFE56A02F8B7A901DC9062 = {
- fRef = F5F24F6E016ECAA401DC9062;
- isa = PBXTextBookmark;
- name = "tcl.h: 397";
- rLen = 6;
- rLoc = 11199;
- rType = 0;
- vrLen = 1293;
- vrLoc = 10644;
+ F9A61CCE04C2B5A8006F5A0B = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ launchableReference = F9A61CD104C2B5B4006F5A0B;
+ name = tcltest;
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
};
- F5BFE56E02F8B7AA01DC9062 = {
+ F9A61CD104C2B5B4006F5A0B = {
isa = PBXFileReference;
- name = stat.h;
- path = /usr/include/sys/stat.h;
- refType = 0;
+ name = tcltest;
+ path = ../../build/tcl/tcltest;
+ refType = 4;
};
}
diff --git a/macosx/Tcl.pbproj/project.pbxproj b/macosx/Tcl.pbproj/project.pbxproj
index 9f9fa9a..4d2b2ca 100644
--- a/macosx/Tcl.pbproj/project.pbxproj
+++ b/macosx/Tcl.pbproj/project.pbxproj
@@ -5,32 +5,6 @@
};
objectVersion = 38;
objects = {
- 00530A0D0173C8270ACA28DC = {
- buildActionMask = 12;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# install to ${INSTALL_ROOT} with optional stripping\ncd ${TEMP_DIR}/..\nif test \"${INSTALL_STRIP}\" = \"YES\"; then\nexport INSTALL_PROGRAM='${INSTALL} ${INSTALL_STRIP_PROGRAM}'\nexport INSTALL_LIBRARY='${INSTALL} ${INSTALL_STRIP_LIBRARY}'\nelse\nexport INSTALL_PROGRAM='${INSTALL}'\nexport INSTALL_LIBRARY='${INSTALL}'\nfi\nexport CPPROG='cp -p'\ngnumake install-binaries install-libraries TCL_LIBRARY=\"@TCL_IN_FRAMEWORK@\" INSTALL_ROOT=\"${INSTALL_ROOT}\" SCRIPT_INSTALL_DIR=\"${INSTALL_ROOT}${LIBDIR}/Resources/Scripts\" INSTALL_PROGRAM=\"${INSTALL_PROGRAM}\" INSTALL_LIBRARY=\"${INSTALL_LIBRARY}\"";
- };
- 00530A0E0173CC960ACA28DC = {
- buildActionMask = 12;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# fixup Framework structure\ncd \"${INSTALL_ROOT}${LIBDIR}\"\nln -fs Versions/Current/Headers ../..\nln -fs \"Versions/Current/tclConfig.sh\" ../..\nln -fs `ls libtclstub* | sed -e \"s|.*|Versions/${FRAMEWORK_VERSION}/&|\"` ../..\nif [ \"${BUILD_STYLE}\" = \"Development\" ]; then\n\t# keep copy of debug library around, so that\n\t# Deployment build can be installed on top\n\t# of Development build without overwriting\n\t# the debug library\n\tcp -fp \"${PRODUCT_NAME}\" \"${PRODUCT_NAME}_debug\"\n\tln -fs \"Versions/Current/${PRODUCT_NAME}_debug\" ../..\nfi";
- };
00E2F845016E82EB0ACA28DC = {
buildStyles = (
00E2F847016E82EB0ACA28DC,
@@ -42,8 +16,6 @@
productRefGroup = 00E2F84A016E8A830ACA28DC;
projectDirPath = "";
targets = (
- 00E2F84E016E92110ACA28DC,
- 00E2F84B016E8A830ACA28DC,
00E2F84C016E8B780ACA28DC,
);
};
@@ -65,9 +37,7 @@
buildRules = (
);
buildSettings = {
- EXTRA_CONFIGURE_FLAGS = "--enable-symbols";
- INSTALL_STRIP = NO;
- TEMP_DIR = "${OBJROOT}/Development.build/$(PROJECT_NAME).build/$(TARGET_NAME).build";
+ MAKE_TARGET = develop;
};
isa = PBXBuildStyle;
name = Development;
@@ -76,15 +46,14 @@
buildRules = (
);
buildSettings = {
- INSTALL_STRIP = YES;
- TEMP_DIR = "${OBJROOT}/Deployment.build/$(PROJECT_NAME).build/$(TARGET_NAME).build";
+ MAKE_TARGET = deploy;
};
isa = PBXBuildStyle;
name = Deployment;
};
00E2F84A016E8A830ACA28DC = {
children = (
- 00E2F84D016E92110ACA28DC,
+ F9A61C9D04C2B4E3006F5A0B,
F53ACC5C031D9D11016F146B,
F53ACC73031DA405016F146B,
);
@@ -92,134 +61,31 @@
name = Products;
refType = 4;
};
- 00E2F84B016E8A830ACA28DC = {
- buildArgumentsString = "-c \"if [ \\\"${ACTION}\\\" != \\\"clean\\\" ]; then if [ -z \\\"`find . ! \\\\( -path './*/*' -prune \\\\) -name Makefile -newer \\\"${SRCROOT}/../unix/configure\\\"`\\\" ]; then \\\"${SRCROOT}/../unix/configure\\\" --prefix=/usr --mandir=/usr/share/man --libdir=\\\"${LIBDIR}\\\" --includedir=\\\"${LIBDIR}/Headers\\\" --enable-threads --enable-framework ${EXTRA_CONFIGURE_FLAGS}; mkdir -p Tcl.framework; ln -fs ../Tcl Tcl.framework/Tcl; fi; fi\"";
- buildPhases = (
- );
- buildSettings = {
- EXTRA_CONFIGURE_FLAGS = "";
- FRAMEWORK_VERSION = 8.4;
- INSTALL_PATH = /Library/Frameworks;
- LIBDIR = "${INSTALL_PATH}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}";
- PRODUCT_NAME = Tcl;
- };
- buildToolPath = /bin/sh;
- buildWorkingDirectory = "${TEMP_DIR}/..";
- dependencies = (
- );
- isa = PBXLegacyTarget;
- name = Configure;
- passBuildSettingsInEnvironment = 1;
- productName = Configure;
- settingsToExpand = 6;
- settingsToPassInEnvironment = 287;
- settingsToPassOnCommandLine = 280;
- };
00E2F84C016E8B780ACA28DC = {
- buildArgumentsString = "-c \"if [ \\\"${ACTION}\\\" != \\\"clean\\\" ]; then gnumake tclsh tcltest TCL_LIBRARY=\\\"@TCL_IN_FRAMEWORK@\\\" TCL_PACKAGE_PATH=\\\"~/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks\\\" DYLIB_INSTALL_DIR=\\\"${DYLIB_INSTALL_DIR}\\\" ${EXTRA_MAKE_FLAGS}; else gnumake distclean; fi\"";
+ buildArgumentsString = "-c \"if [ \\\"${ACTION}\\\" != \\\"clean\\\" ]; then if [ \\\"${ACTION}\\\" = \\\"install\\\" ]; then MAKE_ACTION=\"install-\"; fi; else MAKE_ACTION=\"distclean-\"; fi; gnumake \\${MAKE_ACTION:-}${MAKE_TARGET}";
buildPhases = (
);
buildSettings = {
- DYLIB_INSTALL_DIR = "${DYLIB_INSTALL_PATH}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}";
- DYLIB_INSTALL_PATH = "${INSTALL_PATH}";
- EXTRA_MAKE_FLAGS = "";
- FRAMEWORK_VERSION = 8.4;
+ EXTRA_CONFIGURE_ARGS = "";
+ EXTRA_MAKE_ARGS = "";
INSTALL_PATH = /Library/Frameworks;
+ INSTALL_ROOT = "${DSTROOT}";
+ PREFIX = /usr;
PRODUCT_NAME = Tcl;
+ SYMROOT = "${SRCROOT}/../../build/tcl";
};
buildToolPath = /bin/sh;
- buildWorkingDirectory = "${TEMP_DIR}/..";
+ buildWorkingDirectory = "${SRCROOT}";
dependencies = (
- F5877EB5031F7997016F146B,
);
isa = PBXLegacyTarget;
- name = Make;
+ name = Tcl;
passBuildSettingsInEnvironment = 1;
- productName = Make;
+ productName = Tcl;
settingsToExpand = 6;
settingsToPassInEnvironment = 287;
settingsToPassOnCommandLine = 280;
};
- 00E2F84D016E92110ACA28DC = {
- isa = PBXFrameworkReference;
- path = Tcl.framework;
- refType = 3;
- };
- 00E2F84E016E92110ACA28DC = {
- buildPhases = (
- F5877FB6031F97AF016F146B,
- F50DC36A01703B7301DC9062,
- F50DC367017033D701DC9062,
- F50DC3680170344801DC9062,
- 00E2F84F016E92110ACA28DC,
- F5BE9BBF02FB5974016F146B,
- 00530A0D0173C8270ACA28DC,
- 00530A0E0173CC960ACA28DC,
- F5877FBB031FA90A016F146B,
- F59AE5E3017AC67A01DC9062,
- );
- buildSettings = {
- DSTROOT = "${TEMP_DIR}";
- EXTRA_MAKE_INSTALL_FLAGS = "";
- FRAMEWORK_VERSION = 8.4;
- INSTALL_PATH = /Library/Frameworks;
- LIBDIR = "${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}";
- PRODUCT_NAME = Tcl;
- WRAPPER_EXTENSION = framework;
- };
- dependencies = (
- F5877EB6031F79A4016F146B,
- );
- isa = PBXFrameworkTarget;
- name = Tcl;
- productInstallPath = /Library/Frameworks;
- productName = TclLibrary;
- productReference = 00E2F84D016E92110ACA28DC;
- productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>Tcl</string>
- <key>CFBundleGetInfoString</key>
- <string>Tcl Library 8.4, Copyright © 2003 Tcl Core Team.
-MacOS X Port by Jim Ingham &lt;jingham@apple.com&gt; &amp; Ian Reid, Copyright © 2001-2002, Apple Computer, Inc.</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>com.tcltk.tcllibrary</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Tcl Library 8.4</string>
- <key>CFBundlePackageType</key>
- <string>FMWK</string>
- <key>CFBundleShortVersionString</key>
- <string>8.4.3</string>
- <key>CFBundleSignature</key>
- <string>Tcl </string>
- <key>CFBundleVersion</key>
- <string>8.4.3</string>
-</dict>
-</plist>
-";
- };
- 00E2F84F016E92110ACA28DC = {
- buildActionMask = 2147483647;
- files = (
- F59D846A0338FAA4016F146B,
- F59D846B0338FAA4016F146B,
- F59D846E0338FAA4016F146B,
- F59D84620338F9CA016F146B,
- F59D846C0338FAA4016F146B,
- F59D846D0338FAA4016F146B,
- F5C093BB0342F7D6016F146B,
- );
- isa = PBXHeadersBuildPhase;
- runOnlyForDeploymentPostprocessing = 0;
- };
00E2F854016E922C0ACA28DC = {
children = (
F5F24F87016ECAFC01DC9062,
@@ -409,33 +275,6 @@ MacOS X Port by Jim Ingham &lt;jingham@apple.com&gt; &amp; Ian Reid, Copyright Â
//F52
//F53
//F54
- F50DC367017033D701DC9062 = {
- buildActionMask = 2147483647;
- files = (
- );
- isa = PBXFrameworksBuildPhase;
- runOnlyForDeploymentPostprocessing = 0;
- };
- F50DC3680170344801DC9062 = {
- buildActionMask = 2147483647;
- files = (
- );
- isa = PBXResourcesBuildPhase;
- runOnlyForDeploymentPostprocessing = 0;
- };
- F50DC36A01703B7301DC9062 = {
- buildActionMask = 2147483647;
- files = (
- F59D84630338F9EC016F146B,
- F59D84640338F9ED016F146B,
- F59D84670338FA8B016F146B,
- F59D84680338FA8D016F146B,
- F59D84690338FA90016F146B,
- F5C093BA0342F7B4016F146B,
- );
- isa = PBXSourcesBuildPhase;
- runOnlyForDeploymentPostprocessing = 0;
- };
F5306C9F03CAC979016F146B = {
children = (
F5306CA303CAC9DE016F146B,
@@ -476,171 +315,21 @@ MacOS X Port by Jim Ingham &lt;jingham@apple.com&gt; &amp; Ian Reid, Copyright Â
F53ACC5C031D9D11016F146B = {
isa = PBXExecutableFileReference;
name = tclsh8.4;
- path = ../../build/tclsh8.4;
+ path = ../../build/tcl/tclsh8.4;
refType = 2;
};
F53ACC73031DA405016F146B = {
isa = PBXExecutableFileReference;
name = tcltest;
- path = ../../build/tcltest;
+ path = ../../build/tcl/tcltest;
refType = 2;
};
- F5877EB5031F7997016F146B = {
- isa = PBXTargetDependency;
- target = 00E2F84B016E8A830ACA28DC;
- };
- F5877EB6031F79A4016F146B = {
- isa = PBXTargetDependency;
- target = 00E2F84C016E8B780ACA28DC;
- };
- F5877FB6031F97AF016F146B = {
- buildActionMask = 8;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- shellPath = /bin/sh;
- shellScript = "# ensure we can overwrite a previous install\nif [ -d \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\" ]; then\n chmod -RH u+w \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nfi";
- };
- F5877FBB031FA90A016F146B = {
- buildActionMask = 8;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- shellPath = /bin/sh;
- shellScript = "if [ -n \"${EMBEDDED_BUILD:-}\" ]; then\n# if we are embedding frameworks, don't install tclsh\nrm -f \"${INSTALL_ROOT}/usr/bin/tclsh${FRAMEWORK_VERSION}\"\nrmdir -p \"${INSTALL_ROOT}/usr/bin\" 2>&-\ntrue\nelse\n# redo prebinding\ncd \"${INSTALL_ROOT}\"\nif [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi\nif [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi\nredo_prebinding -r . \"./usr/bin/tclsh${FRAMEWORK_VERSION}\"\nif [ -n \"${RM_USRLIB:-}\" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi\nif [ -n \"${RM_SYSTEM:-}\" ]; then rm -f System; fi\n# install tclsh symbolic link\nmkdir -p \"${INSTALL_ROOT}/usr/bin\"\nln -fs \"tclsh${FRAMEWORK_VERSION}\" \"${INSTALL_ROOT}/usr/bin/tclsh\"\nfi";
- };
- F59AE5E3017AC67A01DC9062 = {
- buildActionMask = 8;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- shellPath = /bin/sh;
- shellScript = "if [ -z \"${EMBEDDED_BUILD:-}\" ]; then\n# build html documentation\nif [ \"${BUILD_STYLE}\" = \"Deployment\" ]; then\n cd \"${TEMP_DIR}/..\"\n export DYLD_FRAMEWORK_PATH=${SYMROOT}\n gnumake html DISTDIR=\"${INSTALL_ROOT}${LIBDIR}/Resources/English.lproj/Documentation/Reference\"\n cd \"${INSTALL_ROOT}${LIBDIR}/Resources/English.lproj/Documentation/Reference\"\n ln -fs contents.htm html/TclTOC.html\n rm -fr \"${PRODUCT_NAME}\"; mv -f html \"${PRODUCT_NAME}\"\nfi\nfi";
- };
- F59D84620338F9CA016F146B = {
- fileRef = F5F24F72016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- ATTRIBUTES = (
- Private,
- );
- };
- };
- F59D84630338F9EC016F146B = {
- fileRef = F5F24F73016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D84640338F9ED016F146B = {
- fileRef = F5F24F74016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D84670338FA8B016F146B = {
- fileRef = F5F24F6E016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D84680338FA8D016F146B = {
- fileRef = F5F24F70016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D84690338FA90016F146B = {
- fileRef = F5F24F77016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D846A0338FAA4016F146B = {
- fileRef = F5F24F6E016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D846B0338FAA4016F146B = {
- fileRef = F5F24F70016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F59D846C0338FAA4016F146B = {
- fileRef = F5F24F73016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- ATTRIBUTES = (
- Private,
- );
- };
- };
- F59D846D0338FAA4016F146B = {
- fileRef = F5F24F74016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- ATTRIBUTES = (
- Private,
- );
- };
- };
- F59D846E0338FAA4016F146B = {
- fileRef = F5F24F77016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
F5A1836F018242A501DC9062 = {
fileEncoding = 5;
isa = PBXFileReference;
path = tclMacOSXBundle.c;
refType = 2;
};
- F5BE9BBF02FB5974016F146B = {
- buildActionMask = 2147483647;
- files = (
- );
- generatedFileNames = (
- );
- isa = PBXShellScriptBuildPhase;
- neededFileNames = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# symolic link hackery to trick\n# 'make install INSTALL_ROOT=${TEMP_DIR}'\n# into building Tcl.framework and tclsh in ${SYMROOT}\ncd \"${TEMP_DIR}\"\nmkdir -p Library\nmkdir -p usr\nrm -f Library/Frameworks; ln -fs \"${SYMROOT}\" Library/Frameworks\nrm -f usr/bin; ln -fs \"${SYMROOT}\" usr/bin\nln -fs \"${TEMP_DIR}/../tcltest\" \"${SYMROOT}\"";
- };
- F5C093BA0342F7B4016F146B = {
- fileRef = F5F24F76016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- };
- };
- F5C093BB0342F7D6016F146B = {
- fileRef = F5F24F76016ECAA401DC9062;
- isa = PBXBuildFile;
- settings = {
- ATTRIBUTES = (
- Private,
- );
- };
- };
F5C88655017D604601DC9062 = {
children = (
F5C88656017D604601DC9062,
@@ -1560,6 +1249,22 @@ MacOS X Port by Jim Ingham &lt;jingham@apple.com&gt; &amp; Ian Reid, Copyright Â
path = ../library/word.tcl;
refType = 2;
};
+//F50
+//F51
+//F52
+//F53
+//F54
+//F90
+//F91
+//F92
+//F93
+//F94
+ F9A61C9D04C2B4E3006F5A0B = {
+ isa = PBXFrameworkReference;
+ name = Tcl.framework;
+ path = ../../build/tcl/Tcl.framework;
+ refType = 2;
+ };
};
rootObject = 00E2F845016E82EB0ACA28DC;
}
diff --git a/tools/tcltk-man2html.tcl b/tools/tcltk-man2html.tcl
index 42f0e58..a4babde 100755
--- a/tools/tcltk-man2html.tcl
+++ b/tools/tcltk-man2html.tcl
@@ -65,20 +65,22 @@ package require Tcl 8.4
# Oct 24, 1997 - moved from 8.0b1 to 8.0 release
#
-set Version "0.31"
+set Version "0.32"
proc parse_command_line {} {
global argv Version
# These variables determine where the man pages come from and where
# the converted pages go to.
- global tcltkdir tkdir tcldir webdir
+ global tcltkdir tkdir tcldir webdir build_tcl build_tk
# Set defaults based on original code.
set tcltkdir ../..
set tkdir {}
set tcldir {}
set webdir ../html
+ set build_tcl 0
+ set build_tk 0
# Handle arguments a la GNU:
# --version
@@ -99,6 +101,8 @@ proc parse_command_line {} {
puts " --version print version number, then exit"
puts " --srcdir=DIR find tcl and tk source below DIR"
puts " --htmldir=DIR put generated HTML in DIR"
+ puts " --tcl build tcl help"
+ puts " --tk build tk help"
exit 0
}
@@ -112,6 +116,14 @@ proc parse_command_line {} {
set webdir [string range $option 10 end]
}
+ --tcl {
+ set build_tcl 1
+ }
+
+ --tk {
+ set build_tk 1
+ }
+
default {
puts stderr "tcltk-man-html: unrecognized option -- `$option'"
exit 1
@@ -119,6 +131,9 @@ proc parse_command_line {} {
}
}
+ if {!$build_tcl && !$build_tk} {set build_tcl 1; set build_tk 1}
+
+ if {$build_tcl} {
# Find Tcl.
set tcldir [lindex [lsort [glob -nocomplain -tails -type d \
-directory $tcltkdir {tcl{,[8-9].[0-9]{,.[0-9]}}}]] end]
@@ -127,7 +142,9 @@ proc parse_command_line {} {
exit 1
}
puts "using Tcl source directory $tcldir"
+ }
+ if {$build_tk} {
# Find Tk.
set tkdir [lindex [lsort [glob -nocomplain -tails -type d \
-directory $tcltkdir {tk{,[8-9].[0-9]{,.[0-9]}}}]] end]
@@ -136,10 +153,15 @@ proc parse_command_line {} {
exit 1
}
puts "using Tk source directory $tkdir"
+ }
# the title for the man pages overall
global overall_title
- set overall_title "[capitalize $tcldir]/[capitalize $tkdir] Manual"
+ set overall_title ""
+ if {$build_tcl} {append overall_title "[capitalize $tcldir]"}
+ if {$build_tcl && $build_tk} {append overall_title "/"}
+ if {$build_tk} {append overall_title "[capitalize $tkdir]"}
+ append overall_title " Manual"
}
proc capitalize {string} {
@@ -656,6 +678,7 @@ proc cross-reference {ref} {
foreach name {array file history info interp string trace
after clipboard grab image option pack place selection tk tkwait update winfo wm} {
if {[regexp "^$name \[a-z0-9]*\$" $lref] && \
+ [info exists manual(name-$name)] && \
[string compare $manual(tail) "$name.n"]} {
return "<A HREF=\"../$manual(name-$name).htm\">$ref</A>"
}
@@ -1265,7 +1288,7 @@ proc makedirhier {dir} {
## specified by html.
##
proc make-man-pages {html args} {
- global env manual overall_title
+ global env manual overall_title tcltkdesc
makedirhier $html
set manual(short-toc-n) 1
set manual(short-toc-fp) [open $html/contents.htm w]
@@ -1273,6 +1296,7 @@ proc make-man-pages {html args} {
puts $manual(short-toc-fp) "<BODY><HR><H3>$overall_title</H3><HR><DL>"
set manual(merge-copyrights) {}
foreach arg $args {
+ if {$arg == ""} {continue}
set manual(wing-glob) [lindex $arg 0]
set manual(wing-name) [lindex $arg 1]
set manual(wing-file) [lindex $arg 2]
@@ -1558,15 +1582,15 @@ proc make-man-pages {html args} {
set keys [lsort -command strcasecmp [array names manual keyword-*]]
makedirhier $html/Keywords
catch {eval file delete -- [glob $html/Keywords/*]}
- puts $manual(short-toc-fp) {<DT><A HREF="Keywords/contents.htm">Keywords</A><DD>The keywords from the Tcl/Tk man pages.}
+ puts $manual(short-toc-fp) "<DT><A HREF=\"Keywords/contents.htm\">Keywords</A><DD>The keywords from the $tcltkdesc man pages."
set keyfp [open $html/Keywords/contents.htm w]
- puts $keyfp "<HTML><HEAD><TITLE>Tcl/Tk Keywords</TITLE></HEAD>"
- puts $keyfp "<BODY><HR><H3>Tcl/Tk Keywords</H3><HR><H2>"
+ puts $keyfp "<HTML><HEAD><TITLE>$tcltkdesc Keywords</TITLE></HEAD>"
+ puts $keyfp "<BODY><HR><H3>$tcltkdesc Keywords</H3><HR><H2>"
foreach a {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} {
puts $keyfp "<A HREF=\"$a.htm\">$a</A>"
set afp [open $html/Keywords/$a.htm w]
- puts $afp "<HTML><HEAD><TITLE>Tcl/Tk Keywords - $a</TITLE></HEAD>"
- puts $afp "<BODY><HR><H3>Tcl/Tk Keywords - $a</H3><HR><H2>"
+ puts $afp "<HTML><HEAD><TITLE>$tcltkdesc Keywords - $a</TITLE></HEAD>"
+ puts $afp "<BODY><HR><H3>$tcltkdesc Keywords - $a</H3><HR><H2>"
foreach b {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} {
puts $afp "<A HREF=\"$b.htm\">$b</A>"
}
@@ -1657,22 +1681,27 @@ proc make-man-pages {html args} {
return {}
}
-set usercmddesc {The interpreters which implement Tcl and Tk.}
+parse_command_line
+
+set tcltkdesc ""; set cmdesc ""; set appdir ""
+if {$build_tcl} {append tcltkdesc "Tcl"; append cmdesc "Tcl"; append appdir "$tcldir"}
+if {$build_tcl && $build_tk} {append tcltkdesc "/"; append cmdesc " and "; append appdir ","}
+if {$build_tk} {append tcltkdesc "Tk"; append cmdesc "Tk"; append appdir "$tkdir"}
+
+set usercmddesc "The interpreters which implement $cmdesc."
set tclcmddesc {The commands which the <B>tclsh</B> interpreter implements.}
set tkcmddesc {The additional commands which the <B>wish</B> interpreter implements.}
set tcllibdesc {The C functions which a Tcl extended C program may use.}
set tklibdesc {The additional C functions which a Tk extended C program may use.}
-parse_command_line
-
if {1} {
if {[catch {
make-man-pages $webdir \
- "$tcltkdir/{$tkdir,$tcldir}/doc/*.1 {Tcl/Tk Applications} UserCmd {$usercmddesc}" \
- "$tcltkdir/$tcldir/doc/*.n {Tcl Commands} TclCmd {$tclcmddesc}" \
- "$tcltkdir/$tkdir/doc/*.n {Tk Commands} TkCmd {$tkcmddesc}" \
- "$tcltkdir/$tcldir/doc/*.3 {Tcl Library} TclLib {$tcllibdesc}" \
- "$tcltkdir/$tkdir/doc/*.3 {Tk Library} TkLib {$tklibdesc}"
+ "$tcltkdir/{$appdir}/doc/*.1 \"$tcltkdesc Applications\" UserCmd {$usercmddesc}" \
+ [expr {$build_tcl ? "$tcltkdir/$tcldir/doc/*.n {Tcl Commands} TclCmd {$tclcmddesc}" : ""}] \
+ [expr {$build_tk ? "$tcltkdir/$tkdir/doc/*.n {Tk Commands} TkCmd {$tkcmddesc}" : ""}] \
+ [expr {$build_tcl ? "$tcltkdir/$tcldir/doc/*.3 {Tcl Library} TclLib {$tcllibdesc}" : ""}] \
+ [expr {$build_tk ? "$tcltkdir/$tkdir/doc/*.3 {Tk Library} TkLib {$tklibdesc}" : ""}]
} error]} {
puts $error\n$errorInfo
}
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 9afd3b5..f9853a8 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -5,7 +5,7 @@
# "autoconf" program (constructs like "@foo@" will get replaced in the
# actual Makefile.
#
-# RCS: @(#) $Id: Makefile.in,v 1.121.2.1 2003/05/20 17:26:26 hobbs Exp $
+# RCS: @(#) $Id: Makefile.in,v 1.121.2.2 2003/07/15 01:15:51 das Exp $
VERSION = @TCL_VERSION@
MAJOR_VERSION = @TCL_MAJOR_VERSION@
@@ -1343,9 +1343,12 @@ allpatch: dist
# TOOL_DIR.
#
-html:
+html-tcl: EXTRA_HTML_ARGS=--tcl
+html-tk: EXTRA_HTML_ARGS=--tk
+
+html html-tcl html-tk:
$(TCL_EXE) $(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(DISTDIR)/html \
- --srcdir=$(TOP_DIR)/..
+ --srcdir=$(TOP_DIR)/.. $(EXTRA_HTML_ARGS)
#
# Target to create a Macintosh version of the distribution. This will