我不使用 tkdnd,所以我没有特定于该安装的答案。
添加到我的script 我的构建脚本中有块,例如构建“tdom”扩展的这个块。
cd $SRCDIR
cd tdom*
if [[ $? -eq 0 ]]; then
make distclean
./configure \
--exec-prefix=$INSTLOC \
--prefix=$INSTLOC \
--with-tcl=$INSTLOC/Library/Frameworks/Tcl.framework/tclConfig.sh
make CFLAGS="-O2 -mmacosx-version-min=${macosxminver}"
make install
fi
但是,链接到 Tk 库可能会使事情复杂化。每个包都是不同的,并且使用不同的变量。所以我需要下载 tkdnd 并构建它,看看是否有任何问题,所以期待即将对此答案进行编辑。
(编辑:我将脚本固定在the original question,所以以下
段落不再适用)
我对 init.tcl 脚本的更改不是很完美,如您所见,当我通过“wish”运行时加载了错误的包(wish 与 tclsh 位于不同的位置,这会导致一些问题)。我应该在auto_path 中找到本地安装的路径。如果您使用我的脚本,则需要注意这一点。
bll-mac:$ ../darwin/64/tcl/bin/tclsh
% package require tdom
0.9.1
bll-mac$ ../darwin/64/tcl/bin/wish
% package require tdom
0.8.3
% package require tdom 0.9.1
0.9.1
framework(和b)与普通安装之间确实没有任何区别,框架只是提供了资源定位的结构。
编辑:
似乎以下工作可以编译和安装 tkdnd 包。
PKG_CFLAGS 的重新定义是必要的,因为 tkdnd makefile
定义了一个编译器不支持的参数(在 Mojave 上)。
所以 PKG_CFLAGS 是 makefile 中没有 -fobjc-gc 的内容的副本。
我只试过package require tkdnd。我不知道怎么用
包,所以我没有尝试其他任何东西。
cd $SRCDIR
cd tkdnd*
if [[ $? -eq 0 ]]; then
make distclean
./configure \
--prefix=$INSTLOC \
--exec-prefix=$INSTLOC \
--with-tcl=$INSTLOC/Library/Frameworks/Tcl.framework \
--with-tk=$INSTLOC/Library/Frameworks/Tk.framework
make CLAGS_OPTIMIZE="-O2 -mmacosx-version-min=${macosxminver}" \
PKG_CFLAGS="-DMAC_TK_COCOA -std=gnu99 -x objective-c"
make install
fi