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?

  • So you've installed the tcl8.5-dev package, but configure cannot find the /usr/include/tcl8.5/tcl.h file? Please include the output of ls -l /usr/include/tcl8.5/tcl.h in your question. – gertvdijk Aug 27 '13 at 18:45
  • 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. – gertvdijk Aug 27 '13 at 18:58
  • By the way, if it does succeed, the output is very similar. Perhaps you're just reading too fast (like I just did in my attempt to compile). Works for me after installing the packages. – gertvdijk Aug 27 '13 at 19:01
  • Please, only edit your question to include more details. Comments aren't fit for that. – gertvdijk Aug 27 '13 at 19:03
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.

  • Thanks for your reply! unfortunately installing those libraies is one of the steps given in scid's website. I installed them using this commands from the Terminal: > sudo apt-get install tcl8.5-dev > sudo apt-get install tk8.5-dev – lbochitt Aug 27 '13 at 18:39
  • @lbochitt You did not include in your question what you did. Please, next time, include these attempts. It is so sad that I am taking the time writing this answer while you already did this... :( Now go and edit your question and include all steps you performed. – gertvdijk Aug 27 '13 at 18:44
  • Sorry, my bad. It's done :) – lbochitt Aug 27 '13 at 18:52
  • @lbochitt Please edit your own question to include your results. Don't use my answer with a suggested edit for your results. Thanks. – gertvdijk Aug 27 '13 at 19:13
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)

0

Try simple:

sudo apt-get install scid
  • 1
    The question clearly states that OP wants to compile the program from source. – David Foerster Sep 5 '16 at 13:10
  • But it might be the case that OP needs just any version of the software - so this looks legit. – guntbert Sep 5 '16 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.