Tk Source Code

View Ticket
Login
Ticket UUID: 8b679f597b1d17ade39c566bb65ce669955387ae
Title: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library
Type: Bug Version: 8.7
Submitter: bll Created on: 2021-05-15 14:39:34
Subsystem: 83. Mac OS X Build Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2021-05-21 15:04:14
Resolution: Fixed Closed By: fvogel
    Closed on: 2021-05-21 15:04:14
Description: (text/html)
<pre>
I was demonstrating to François one method of building for X11 on Mac OS,
and the Makefile creates the Tk library using a library path rather than
a library directory.
</pre>

<pre>
startx &
xvfb :98 &
cd tcl/macosx
../unix/configure --prefix=$HOME/t/localD
make -f Makefile -j 12
make -f Makefile install
cd ../../tk/macosx
../unix/configure --prefix=$HOME/t/localD --with-tcl=$HOME/t/localD/lib --disable-aqua --disable-framework \
        --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --with-x
make -f Makefile -j 12
make -f Makefile install
# and these damned makefiles are so screwed up...the path to the tk library is incorrectly set.
$HOME/t/localD/bin/wish8.6
     dyld: Library not loaded: <b>/Volumes/Users/bll/t/localD/lib:/opt/X11/lib/libtk8.6.dylib</b>
# so we fix that...
DYLD_FALLBACK_LIBRARY_PATH=$HOME/t/localD/lib $HOME/t/localD/bin/wish8.6
% exit
# it works, there is an X11 display of the wish console.
# you can tell, there is an X logo in the title bar.
DISPLAY=:98 DYLD_FALLBACK_LIBRARY_PATH=$HOME/t/localD/lib $HOME/t/localD/bin/wish8.6
% exit
# and this works also.
</pre>
User Comments: fvogel added on 2021-05-21 15:04:14:
Excellent, thanks!

jan.nijtmans added on 2021-05-21 14:00:02: (text/x-fossil-wiki)
B.T.W. I tested the build with GNUMakefile too, as far as I can see everything works fine.

jan.nijtmans added on 2021-05-21 13:56:55: (text/x-fossil-wiki)
Well, the configure script does this:
<pre>
if test "x${x_libraries}" != "x"; then
  if test "x${x_libraries}" != "xNONE"; then
    LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${x_libraries}"
  fi
fi
</pre>

The problem is the ':' in LIB_RUNTIME_DIR, which was not handled correctly in MacOS. This can only happen if x_libraries is set, so when building with XQuarz. The GNUMakefile always builds with -enable-aqua, so this problem cannot happen when using GNUmakefile.

So, nothing more to do :-)

fvogel added on 2021-05-21 13:18:42:
> I expect the GNUmakefile will get tested by other people.

What does this mean exactly? Is there something to do there as well (if so, we shouldn't close the present ticket yet)? How can I (for instance) test this GNUmakefile?

jan.nijtmans added on 2021-05-20 11:55:12: (text/x-fossil-wiki)
Fixed merged now to 8.6 and 8.7 branch.

Thanks!

bll added on 2021-05-19 15:19:07:
Tcl: core-8-6-branch
Tk: 997b17c3

../unix/configure / x11 
   --disable-aqua --disable-framework \
   --x-includes=... --x-libraries=... --with-x : works
The issue addressed in this ticket is fixed.

../unix/configure / aqua 
   --enable-aqua : works
I seemed to have some caching issues, it kept starting an X11 version.
Some sort of non-issue that I eventually resolved.

I expect the GNUmakefile will get tested by other people.

jan.nijtmans added on 2021-05-19 13:41:44: (text/x-fossil-wiki)
Proposed fix [997b17c343444e48|here]. @bll, can you check if this works for you?

bll added on 2021-05-15 14:40:01:
Assigning to Jan.