Tcl/Tk 8.3.2 build on QNX 4.25 info

2 views
Skip to first unread message

Bruce Edge

unread,
Aug 15, 2000, 3:00:00 AM8/15/00
to
I've received a number of emails asking about this, so here's the info for
anyone who is interested:

tcl:
from /usr/local/src/tcl8.3.2/unix run:
./configure --prefix=/usr/local/tcl8.3.2 --disable-threads --disable-load
--disable-shard --enable-gcc --with-tcl=/usr/local/tcl8.3.2
--with-tk=/usr/local/tcl8.3.2

tk:
from /usr/local/src/tk8.3.2/unix run:
./configure --prefix=/usr/local/tcl8.3.2 --disable-threads --disable-load
--disable-shard --enable-gcc --with-tcl=/usr/local/tcl8.3.2/lib
--with-tk=/usr/local/tcl8.3.2

Don't know if all these options are absolutely necessary, but when something
works, well, you know the rest.

Edit unix/Makefile and turn off security:
#SECURITY_FLAGS =
SECURITY_FLAGS = -DTK_NO_SECURITY
..or, at some point get xauth style working on QNX.

Edit all Makefiles and change SH to /bin/bash rather /bin/sh
Oh, yes, you'll need the bash from quics /usr/free/qnx4

If soneone knows of a better way to handle this next one, I'd love to know.
Edit tk/generic/tk.h and insert:
#undef XNQueryInputStyle
above the line:
#ifdef XNQueryInputStyle

There's something wierd in QNX's shell test handling, so I had to comment out
a few tests in the unix/Makefiles, here's the diffs:

tcl:

$ //8/mnt/louie/home/bedge/p4/ncc/524/main/qnx/source/usr/darts/src/tasks> cat
/usr/local/src/tcl8.3.2/unix/Makefile.diff
522,524c522,524
< # @if test ! -x $(SRC_DIR)/install-sh; then \
< # chmod +x $(SRC_DIR)/install-sh; \
< # fi
---
> @if test ! -x $(SRC_DIR)/install-sh; then \
> chmod +x $(SRC_DIR)/install-sh; \
> fi
529,533c529,533
< # @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
< # echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
< # $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
< # $(LIB_INSTALL_DIR)/$(TCL_EXP_FILE); \
< # fi
---
> @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
> echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
> $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
> $(LIB_INSTALL_DIR)/$(TCL_EXP_FILE); \
> fi
563,565c563,565
< # @if test ! -x $(SRC_DIR)/install-sh; then \
< # chmod +x $(SRC_DIR)/install-sh; \
< # fi
---
> @if test ! -x $(SRC_DIR)/install-sh; then \
> chmod +x $(SRC_DIR)/install-sh; \
> fi
590,592c590,592
< # @if test ! -x $(UNIX_DIR)/mkLinks; then \
< # chmod +x $(UNIX_DIR)/mkLinks; \
< # fi
---
> @if test ! -x $(UNIX_DIR)/mkLinks; then \
> chmod +x $(UNIX_DIR)/mkLinks; \
> fi

tk:

$ //8/mnt/louie/home/bedge/p4/ncc/524/main/qnx/source/usr/darts/src/tasks> cat
/usr/local/src/tk8.3.2/unix/Makefile.diff
453,458c453,458
< # @if test ! -x $(UNIX_DIR)/install-sh; then \
< # chmod +x $(UNIX_DIR)/install-sh; \
< # fi
< # @if test ! -x $(UNIX_DIR)/mkLinks; then \
< # chmod +x $(UNIX_DIR)/mkLinks; \
< # fi
---
> @if test ! -x $(UNIX_DIR)/install-sh; then \
> chmod +x $(UNIX_DIR)/install-sh; \
> fi
> @if test ! -x $(UNIX_DIR)/mkLinks; then \
> chmod +x $(UNIX_DIR)/mkLinks; \
> fi
467,471c467,471
< # @if test "$(TK_BUILD_EXP_FILE)" != ""; then \
< # echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
< # $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
< # $(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \
< # fi
---
> @if test "$(TK_BUILD_EXP_FILE)" != ""; then \
> echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
> $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
> $(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \
> fi
489,491c489,491
< # @if test ! -x $(UNIX_DIR)/install-sh; then \
< # chmod +x $(UNIX_DIR)/install-sh; \
< # fi
---
> @if test ! -x $(UNIX_DIR)/install-sh; then \
> chmod +x $(UNIX_DIR)/install-sh; \
> fi

Then, from /usr/local/tcl8.2.3/unix run:
make
make install
then do the same in /usr/local/tk8.2.3

Then, I made a link from /usr/local/tcl8.3.2 to /usr/local/tcl


-ITCL

This is for [incr tcl] 3.1.0, I haven't tried 3.2.0 yet.
./configure --exec-prefix=/usr/local/tcl --disable-shared

Then, change /bin/sh to /bin/bash in all Makefiles

Got ITCL built. Minor glitch in Makefile:
I've been trying to make the itcl tarball from the
scriptics site (itcl3.1.0.tar.gz) on QNX.
I finally got it built, but I think there's a buglet
in the makefile in itcl3.1.0/itk/unix

Line 220 has:

STUB_OBJS = itkStubLib.o

Line 240 has:

$(ITK_STUB_LIB_FILE): $(STUB_OBJS)
rm -f $(ITK_STUB_LIB_FILE)
ar cr ${ITK_STUB_LIB_FILE} ${ITK_STUB_LIB_OBJS}
$(RANLIB) $(ITCL_STUB_LIB_FILE)

The args to "ar" contain an undefined macro: ${ITK_STUB_LIB_OBJS}

changing it to read:

ar cr ${ITK_STUB_LIB_FILE} ${STUB_OBJS}

Also, for make install, need to chmod +x all the install-sh scripts.

Lastly:
# //8/usr/local/src/itcl3.1.0/itcl/library> mkdir /usr/local/tcl/lib/itcl3.1
# //8/usr/local/src/itcl3.1.0/itcl/library> cp itcl/library/itcl.tcl
/usr/local/tcl/lib/itcl3.1
# //8/usr/local/src/itcl3.1.0> mkdir /usr/local/tcl/lib/itk3.1
# //8/usr/local/src/itcl3.1.0> cp itk/library/itk.tcl
/usr/local/tcl/lib/itk3.1

Then, make, make install....

-Bruce.

Reply all
Reply to author
Forward
0 new messages