3

First of all I would like to point that I'm new to Ubuntu so sorry if what I am asking is ridiculous.

I have downloaded Scid 4.4 chess program and I have tried to compile it as it was explained on its website:

1) Initialize git.

2) Create a folder where you want to download and (?) compile the source, then cast: git init on your command line.

3) You're now ready to download the sources recall Fulvio's spell: git clone git://scid.git.sourceforge.net/gitroot/scid/scid This should get you the latest Scid source.

4) You're now ready to compile Scid. In principle, all you need to do is: ./configure and then make

5) If you get stuck, you probably need to get developer versions of tcl/tk. This translates into issuing these three commands: sudo apt-get install tcl8.5-dev sudo apt-get install tk8.5-dev sudo apt-get install zlib1g -dev

6) You should now be ready to compile

The problem is that when I run ./configure to start compiling the following message appears on Terminal:

configure: Makefile configuration program for Scid

    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-19-generic
    Location of "tcl.h": /usr/include/tcl8.5
    Location of "tk.h": /usr/include/tcl8.5
    Location of Tcl 8.5 library: not found
    Location of Tk 8.5 library: not found
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
Not all settings could be determined!
The default Makefile was written.
You will need to edit it before you can compile Scid.

What should I do? Has anybody faced this problem before? Thanks in advance


I have run

ls -l /usr/include/tcl8.5/tcl.h

here's the result:

-rw-r--r-- 1 root root 87291 abr 22 10:45 /usr/include/tcl8.5/tcl.h

I have also tried what you suggested

Could you run git reset --hard HEAD and git clean -d -f to clean up everything using Git? Then run ./configure again. Just a shot in the dark - I've seen some GNU automake stuff still listening to its "cached" version of the results or something.

Still no solution. I don't know why it can't recognize the library though it is installed


I opened configure to see where the program looked for the library. This is the code:

# libraryPath: List of possible locations of Tcl/Tk library.
set libraryPath {
    /usr/lib
    /usr/lib64
    /usr/local/tcl/lib
    /usr/local/lib
    /usr/X11R6/lib
    /opt/tcltk/lib
    /usr/lib/x86_64-linux-gnu
}
lappend libraryPath "/usr/lib/tcl${tclv}"
lappend libraryPath "/usr/lib/tk${tclv}"
lappend libraryPath "/usr/lib/tcl${tclv_nodot}"
lappend libraryPath "/usr/lib/tk${tclv_nodot}"

# Try to add tcl_library and auto_path values to libraryPath,
# in case the user has a non-standard Tcl/Tk library location:

if {[info exists ::tcl_library]} {
    lappend headerPath \
        [file join [file dirname [file dirname $::tcl_library]] include]
    lappend libraryPath [file dirname $::tcl_library]
    lappend libraryPath $::tcl_library
}
if {[info exists ::auto_path]} {
    foreach name $::auto_path {
        lappend libraryPath $name
    }
}

if {! [info exists var(TCL_INCLUDE)]} {
    puts -nonewline {    Location of "tcl.h": }
    set opt(tcl_h) [findDir "tcl.h" $headerPath "TCL_VERSION.*$tclv"]
    if {$opt(tcl_h) == ""} {
        puts "not found"
        set success 0
        set opt(tcl_h) "$::defaultVar(TCL_INCLUDE)"
    } else {
        puts $opt(tcl_h)
    }
}

set opt(tcl_lib) ""

if {! [info exists var(TCL_LIBRARY)]} {
    puts -nonewline "    Location of Tcl $tclv library: "
    set opt(tcl_lib) [findDir "libtcl${tclv}.*" $libraryPath]
    if {$opt(tcl_lib) == ""} {
        set opt(tcl_lib) [findDir "libtcl${tclv_nodot}.*" $libraryPath]
        if {$opt(tcl_lib) == ""} {
            puts "not found"
            set success 0
            set opt(tcl_lib) "$opt(tcl_h)"
            set opt(tcl_lib_file) "tcl\$(TCL_VERSION)"
        } else {
            set opt(tcl_lib_file) "tcl${tclv_nodot}"
            puts $opt(tcl_lib)
        }
    } else {
        set opt(tcl_lib_file) "tcl\$(TCL_VERSION)"
        puts $opt(tcl_lib)
    }
}

if {! [info exists var(TCL_INCLUDE)]} {
    set var(TCL_INCLUDE) "-I$opt(tcl_h)"
}
if {! [info exists var(TCL_LIBRARY)]} {
    set var(TCL_LIBRARY) "-L$opt(tcl_lib) -l$opt(tcl_lib_file)"
}
return $success

So I guess (And by guess I mean i have no idea how to code) I should write somewhere in here usr/lib/tcl8.5 and usr/lib/tk8.5, am I right?

4 Answers4

3
Location of Tcl 8.5 library: not found
Location of Tk 8.5 library: not found

Means you're missing the libraries Tcl and Tk (development packages).

Install tcl8.5-dev Install tcl8.5-dev and tk8.5-dev Install tk8.5-dev and you should be all set.

How did I find this? Use the search on paths on the http://packages.ubuntu.com site:

enter image description here


Before installing the packages:

$ ./configure 
configure: Makefile configuration program for Scid
    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-29-generic
    Location of "tcl.h": not found
    Location of "tk.h": not found
    Location of Tcl 8.5 library: /usr/lib
    Location of Tk 8.5 library: /usr/lib
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
Not all settings could be determined!
The default Makefile was written.
You will need to edit it before you can compile Scid.

After installing the packages:

$ ./configure 
configure: Makefile configuration program for Scid
    Renaming "Makefile" to "Makefile.bak"
    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-29-generic
    Location of "tcl.h": /usr/include/tcl8.5
    Location of "tk.h": /usr/include/tcl8.5
    Location of Tcl 8.5 library: /usr/lib
    Location of Tk 8.5 library: /usr/lib
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
The Makefile configured for your system was written.
Multi-threading enabled (if you have problems try ./configure THREADS="").
Now just type "make" to compile Scid.

You see, it's very similar and it's easy to overlook that it is actually succeeding now.

gertvdijk
  • 69,427
2
Location of Tcl 8.5 library: not found
Location of Tk 8.5 library: not found

Had the same issue with Ubuntu 13.04. Could not compile although I had installed the necessary packages. The problem seems to be, that scid looks inside /usr/lib for the tcl and tk libs, although they are installed in /usr/lib/x86_64-linux-gnu as you can see by right-clicking in the package manager on the tcl8.5-lib package and selecting Properties/Installed Files.

The solution is to create soft links to those libraries in the /usr/lib dir:

sudo ln -s /usr/lib/x86_64-linux-gnu/libtcl8.5.so.0 /usr/lib/libtcl8.5.so.0
sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.5.so.0 /usr/lib/libtk8.5.so.0

Hope that helps.

0

In my case modifying the configure script worked. I added /usr/lib/i386-linux-gnu to the list libraryPath (line 167)

Antonio
  • 91
0

Try simple:

sudo apt-get install scid