Home > Archive > Tcl > May 2006 > Compile BLT for recent Tcl/Tk on MacOS X (X11)
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Compile BLT for recent Tcl/Tk on MacOS X (X11)
|
|
| Torsten Reincke 2006-05-30, 8:06 am |
| Hi,
recently I tried to compile BLT (version 2.4z) for the X11 system on my
MacOS X box (Tiger 10.4.5). I grabbed the sources from sourceforge and
the 'make' process did finish, although there were some warnings. The
'make install' failed. I tried to compile for a recent Tcl version
(8.4.13, it must be a Tcl which supports Tile, so something like >
8.4.6 or so).
Has anyone successfully done that and can help me out?? I know there is
fink. Fink comes with Tcl 8.4.1 and includes a running BLT also (for
X11) but it does not support Tile. So here I am, needing to make a BLT
for a recent Tcl/Tk on a Mac ...
Thanks for any hints, Torsten
| |
| Uwe Klein 2006-05-30, 8:06 am |
| Torsten Reincke wrote:
> Hi,
>
> recently I tried to compile BLT (version 2.4z) for the X11 system on my
> MacOS X box (Tiger 10.4.5). I grabbed the sources from sourceforge and
> the 'make' process did finish, although there were some warnings. The
> 'make install' failed. I tried to compile for a recent Tcl version
> (8.4.13, it must be a Tcl which supports Tile, so something like >
> 8.4.6 or so).
>
> Has anyone successfully done that and can help me out?? I know there is
> fink. Fink comes with Tcl 8.4.1 and includes a running BLT also (for
> X11) but it does not support Tile. So here I am, needing to make a BLT
> for a recent Tcl/Tk on a Mac ...
>
> Thanks for any hints, Torsten
>
Suse maintains a working set of tcl and blt ( for ia32 and ia64 on linux/X11):
http://download.opensuse.org/distri...4.12-14.src.rpm
http://download.opensuse.org/distri....4z-222.src.rpm
take the src rpms apart and have a look at the patches?
uwe
| |
| Torsten Reincke 2006-05-30, 10:03 pm |
| Hi,
I took the patches you sent me, but the error is still the same:
mac:> make install
[.....]
cc -dynamiclib -prebind -prebind -o libBLT24.so bltInit.o bltGrAxis.o
bltGrBar
..o bltGrElem.o bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o
bltGrMarker.o bl
tGrMisc.o bltGrPen.o bltGrPs.o bltGraph.o bltAlloc.o bltArrayObj.o
bltBgexec.o
bltChain.o bltDebug.o bltHash.o bltList.o bltNsUtil.o bltParse.o
bltPool.o bltSp
line.o bltSwitch.o bltTree.o bltTreeCmd.o bltUnixPipe.o bltUtil.o
bltVector.o bl
tVecMath.o bltVecCmd.o bltVecObjCmd.o bltWatch.o bltBeep.o bltBind.o
bltBitmap
..o bltBusy.o bltCanvEps.o bltColor.o bltConfig.o bltContainer.o
bltCutbuffer.o b
ltDragdrop.o bltHierbox.o bltHtext.o bltImage.o bltUnixImage.o bltPs.o
bltTable.
o bltTabnotebook.o bltTabset.o bltText.o bltTile.o bltTreeView.o
bltTreeViewCmd.
o bltTreeViewColumn.o bltTreeViewEdit.o bltTreeViewStyle.o bltUnixDnd.o
bltWindo
w.o bltObjConfig.o bltWinop.o tkButton.o tkFrame.o bltScrollbar.o
bltTed.o \
ld: common symbols not allowed with MH_DYLIB output format with the
-multi_modul
e option
bltInit.o definition of common _bltEmptyStringObjPtr (size 4)
bltInit.o definition of common _bltNaN (size 8)
bltGraph.o definition of common _bltBarElementUid (size 4)
bltGraph.o definition of common _bltXAxisUid (size 4)
bltGraph.o definition of common _bltYAxisUid (size 4)
bltGraph.o definition of common _bltLineElementUid (size 4)
bltGraph.o definition of common _bltStripElementUid (size 4)
bltGraph.o definition of common _bltBitmapMarkerUid (size 4)
bltGraph.o definition of common _bltImageMarkerUid (size 4)
bltGraph.o definition of common _bltLineMarkerUid (size 4)
bltGraph.o definition of common _bltPolygonMarkerUid (size 4)
bltGraph.o definition of common _bltTextMarkerUid (size 4)
bltGraph.o definition of common _bltWindowMarkerUid (size 4)
bltGraph.o definition of common _bltContourElementUid (size 4)
bltUnixImage.o definition of common _blueMaskShift (size 4)
bltUnixImage.o definition of common _greenMaskShift (size 4)
bltUnixImage.o definition of common _redMaskShift (size 4)
bltUnixImage.o definition of common _blueAdjust (size 4)
bltUnixImage.o definition of common _greenAdjust (size 4)
bltUnixImage.o definition of common _redAdjust (size 4)
/usr/bin/libtool: internal link edit command failed
make[2]: *** [libBLT24.so] Error 1
make[1]: *** [install-lib] Error 2
make: *** [install-all] Error 2
I do not understand most of this, but I wonder why libBLT24.so is
mentioned, since Mac uses .dylib, right? Any hints, how to fix this?
Thanks, Torsten
| |
| Uwe Klein 2006-05-31, 4:13 am |
| Torsten Reincke wrote:
> Hi,
>
> I took the patches you sent me, but the error is still the same:
>
> I do not understand most of this, but I wonder why libBLT24.so is
> mentioned, since Mac uses .dylib, right? Any hints, how to fix this?
>
> Thanks, Torsten
me neither ;-)
what was "./configure"s opinion about its environment?
uwe
| |
| Torsten Reincke 2006-05-31, 8:13 am |
| Donald wrote:
> Isn't installation just copying to the public directories?
That was my feeling, but 'make install' does a lot of gcc stuff
obviously:
thor:~/Tcl/packages/blt2.4z Torsten$ sudo make install
Password:
mkdir /usr/lib/blt2.4
(cd src; make install)
/usr/bin/install -c -m 644 libBLT.a /usr/lib/libBLT24.a
(cd /usr/lib; rm -f libBLT.a ; ln -s libBLT24.a libBLT.a)
ranlib /usr/lib/libBLT24.a
ranlib: file: /usr/lib/libBLT24.a(bltVecCmd.o) has no symbols
/usr/bin/install -c -m 644 libBLTlite.a /usr/lib/libBLTlite24.a
(cd /usr/lib; rm -f libBLTlite.a ; ln -s libBLTlite24.a libBLTlite.a)
ranlib /usr/lib/libBLTlite24.a
ranlib: file: /usr/lib/libBLTlite24.a(bltVecCmd.o) has no symbols
(cd shared; make install)
gcc -c -Wall -fPIC -O6 -I.. -I./.. -I./../.. -I/usr/X11R6/include
.../bltGrAxi
s.c
gcc -c -Wall -fPIC -O6 -I.. -I./.. -I./../.. -I/usr/X11R6/include
.../bltGrBar
..c
gcc -c -Wall -fPIC -O6 -I.. -I./.. -I./../.. -I/usr/X11R6/include
.../bltGrEle
m.c
> Aren't mac shared libraries called .dynlib, not .so?
Yes, Mac's libs are *.dylib, nit *.so
Uwe wrote:
> what was "./configure"s opinion about its environment?
That's what configure thinks it is running on:
thor:~/Tcl/packages/blt2.4z Torsten$ ./configure
checking host system type... powerpc-apple-darwin8.6.0
checking target system type... powerpc-apple-darwin8.6.0
checking build system type... powerpc-apple-darwin8.6.0
checking for prefix by checking for wish... /usr/bin/wish
checking which C compiler... checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
gcc
checking how to run the C preprocessor... gcc -E
checking default compiler flags... -O6
checking for Cygwin environment... no
checking for mawk... no
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking for a BSD compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for main in -lsocket... no
checking for main in -lnsl... no
checking for main in -lm... yes
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether time.h and sys/time.h may both be included... yes
.... and so on. So configure sees that it needs to build for a Mac, but
well. I could not find any switch to give to configure in order to get
something more specific.
Hmm, perhaps this lines in the output of configure give a hint:
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for tclConfig.sh... /usr/lib/tclConfig.sh
checking for tkConfig.sh... /usr/lib/tkConfig.sh
checking for XExtendedMaxRequestSize... yes
checking BLT_MAJOR_VERSION... 2
checking BLT_MINOR_VERSION... 4
checking TCL_VERSION in tcl.h... 8.4
checking TK_VERSION in tk.h... 8.4
Configuration results:
tcl.h found in /usr/include
tk.h found in /usr/include
X11/Xlib.h found in /usr/X11R6/include
libtcl8.4 found in /SourceCache/tcl/tcl-20/tcl/tcl/unix
libtk8.4 found in /SourceCache/tk/tk-20/tk/tk/unix
libX11 found in /usr/X11R6/lib
Directories where BLT is to be installed:
"$prefix" is /usr
"$exec_prefix" is /usr
bltwish to be installed in ${exec_prefix}/bin
libBLT.a to be installed in ${exec_prefix}/lib
scripts to be installed in /usr/lib/blt2.4
manual pages to be installed in ${prefix}/man
Does all this make sense?
Torsten
| |
| Donald Arseneau 2006-05-31, 8:13 am |
| "Torsten Reincke" <berg@typoscriptics.de> writes:
>
> That was my feeling, but 'make install' does a lot of gcc stuff
> obviously:
I wonder if the makefiles (perhaps originating with configure)
aren't fully ported to Mac, so that you have to install by
hand-copying files. Given that the "make" seemed to build the
programs and libraries (check that) I have an unsubstantiated hunch
that the "make install" only knows about the Linux/Win file names,
has dependencies on the ".so" files, and triggers a new compilation
for the wrong files.
--
Donald Arseneau asnd@triumf.ca
| |
| Torsten Reincke 2006-05-31, 8:13 am |
| Donald Arseneau schrieb:
> I wonder if the makefiles (perhaps originating with configure)
> aren't fully ported to Mac, so that you have to install by
> hand-copying files. Given that the "make" seemed to build the
> programs and libraries (check that) I have an unsubstantiated hunch
> that the "make install" only knows about the Linux/Win file names,
> has dependencies on the ".so" files, and triggers a new compilation
> for the wrong files.
I had a look into the src/ folder, there are lots of object files (*.o)
produced by the compiler, and there are a few *.a files, which I would
assume are static libs as they are produced for unix (libBLT.a and
libBLTlite.a). The suffix .a does exists for Macs also, so this is
perhaps nothing to worry about. But I could not find any *.dylib files.
I scanned a little through the Makefiles and could not find any
references to Mac-specific stuff there.
So you might be right, that the Makefiles aren't fully prepared for the
Mac. But still, then the fink version should be prepared, because it
compiles and run on the Mac, and I can't see any substantial
differences between the fink Makefile.in and configure.in files and the
ones off sourceforge.
Torsten
|
|
|
|
|