Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Building problem

2005-10-05
2013-04-18
  • Hi,

    I seem unable to compile Staden 1.5.3.

    I have downloaded the source code. As root I then did
            cd src
            make -f Makefile.thirdparty
    which worked fine.

    I then cd.. and type 'make', still as root.

    After some progress, it aborts:

    cd tk_utils && make  -w all
    make[2]: Entering directory `/home/kid/program/staden/staden-src-1-5-3/src/tk_utils'
    Makefile:123: warning: overriding commands for target `distsrc'
    ../mk/global.mk:494: warning: ignoring old commands for target `distsrc'
    ln -s ../licence/boxes.h .
    ln: `./boxes.h': File exists
    make[2]: *** [.links] Error 1
    make[2]: Leaving directory `/home/kid/program/staden/staden-src-1-5-3/src/tk_utils'
    make[1]: *** [tk_utils] Error 2
    make[1]: Leaving directory `/home/kid/program/staden/staden-src-1-5-3/src'
    make: *** [all] Error 2

    I tried 'make clean', and then 'make' again, but the same error just keeps coming back.

    What should I do to compile this?

    I run Mandrake Linux 2005.

    / MK

     
    • James Bonfield
      James Bonfield
      2005-10-06

      I'm not sure why it's broken, but if you look at the Makefile you'll see that tk_utils and text_utils both have a target called .links which makes symbolic links from ../licence/* to their own directory. It'll do these if the .links file doesn't exist.

      I'm guessing that for some reason the .links target partially completed before. The Makefile in the master source tree has already been updated to ignore errors (by editing "ln -s fubar" to be "-ln -s fubar"). Alternatlively do the linking manually at the command line and finish it with "touch .links".

      All of this is just a legacy from when the Staden package had a licencing system to allow free distribution for demonstration purposes and a licence key to unlock it.

      James

       
    • Hi,

      and thanks for your help. I'm afraid I'm a little bit more of a novice than that, such that your kind reply still leaves me wondering what to do. In any event, since

      make -f Makefile.thirdparty

      didn't work initially, I downloaded and installed all external packages by hand (which seemed to work OK). Compilation of Staden itself still didn't work, so I tried "make -f Makefile.thirdparty" again. And this time it DID work - all external packages seem to have been installed successfully.

      A 'make' of Staden itself, however, still does not work. The error message looks different though:

      Makefile:73: warning: overriding commands for target `clean'
      mk/global.mk:256: warning: ignoring old commands for target `clean'
      Makefile:88: warning: overriding commands for target `depend'
      mk/global.mk:515: warning: ignoring old commands for target `depend'
      Makefile:128: warning: overriding commands for target `distsrc'
      mk/global.mk:494: warning: ignoring old commands for target `distsrc'
      cd Misc && make   all
      make[1]: Entering directory `/home/kid/program/staden/staden-src-1-5-3/src/Misc'
      Makefile:10: ../mk/.mk: No such file or directory
      make[1]: *** No rule to make target `../mk/.mk'.  Stop.
      make[1]: Leaving directory `/home/kid/program/staden/staden-src-1-5-3/src/Misc'
      make: *** [Misc] Error 2

      I'm afraid I cannot really look through the error messages. Does anyone know what do to?

      All I want to do is to run the Staden package, and the only reason why I am trying to compile it is that I cannot seem to run the pre-compiled version. For example, when trying to start gap4:

      [linux-bin]$ ./gap4
      invalid command name "load_alignment_matrix"
          while executing
      "load_alignment_matrix       [keylget gap_defs ALIGNMENT.MATRIX_FILE]"
          (file "/home/kid/program/staden/staden-linux-1-5-3/linux-bin/../lib/gap/gap.tcl" line 674)

      So if there's a way to fix this, I wouldn't really be interested in recompilation from source. (When you have downloaded and unpacked the pre-compiled version, is there anything particular you need to do before starting to use it? I've really looked for help files for beginners, but not found any.)

      / MK

       
    • James Bonfield
      James Bonfield
      2005-10-12

      The ../mk/.mk implies that your MACHINE environment variable is not set. Make sure you source the staden.login or staden.profile prior to building.

      James

       
    • Sorry for all my emails. I did what you asked, and the compilation proceeded a bit. Then:

      ../mk/global.mk:494: warning: ignoring old commands for target `distsrc'
      ln -s ../licence/boxes.h .
      ln: `./boxes.h': File exists
      make[2]: *** [.links] Error 1
      make[2]: Leaving directory `/home/kid/program/staden/staden-src-1-5-3/src/tk_utils'
      make[1]: *** [tk_utils] Error 2
      make[1]: Leaving directory `/home/kid/program/staden/staden-src-1-5-3/src'
      make: *** [all] Error 2

      Does this have anything to do with the .links thing you mentioned previoulsy? I'm afraid I didn't quite follow your explanation as to exactly what I should do there...

      / MK

       
    • James Bonfield
      James Bonfield
      2005-10-14

      Yes it's the same links problem mentioned elsewhere (somewhere on this forum I think). Basically edit the "ln -s" commands in the Makefile to read "-ln -s" and it should work.

      James

       
    • I am having problem compiling Io_Lib under solaris 2.8 and gcc compiler. After configure and make I get the folling errors:
      gcc  -g -O2   -o convert_trace  convert_trace.o ../read/libread.a -lz -lm
      Undefined                       first referenced
      symbol                             in file
      send                                ../read/libread.a(open_trace_file.o)
      gethostbyname                       ../read/libread.a(open_trace_file.o)
      socket                              ../read/libread.a(open_trace_file.o)
      setsockopt                          ../read/libread.a(open_trace_file.o)
      connect                             ../read/libread.a(open_trace_file.o)
      ld: fatal: Symbol referencing errors. No output written to convert_trace
      collect2: ld returned 1 exit status
      make[2]: *** [convert_trace] Error 1

      Please help.

      Thanks

       
    • James Bonfield
      James Bonfield
      2005-12-09

      Is this io_lib as a standalone package or io_lib as part of the Staden Package (which uses a different build environment to keep it compatible with the rest of things).

      Within the staden package itself, my gcc stub makefile for Solaris has:

      GCCLIB      =  /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/
      EXTRA_LIBS += -L$(GCCLIB) -lgcc -ldl -lnsl -lsocket

      It'll be the -lnsl -lsocket libraries that you miss.

      As a standalone library, it ought to just work as I use autoconf. Maybe I need to add an additional check in autoconf to support sockets.

      ...

      Indeed hunting around on google I see similar comments elsewhere with one suggestion to add the following to the configure.in script:

      AC_SEARCH_LIBS([gethostbyname], [nsl])
      AC_SEARCH_LIBS([socket], [socket], [],
          [AC_CHECK_LIB([socket], [socket],
                        [LIBS="-lsocket -lnsl $LIBS"], [], [-lnsl])])

      I'll need to experiment a bit on this one.

      James

       
    • James Bonfield
      James Bonfield
      2005-12-09

      Indeed this is indeed the problem. The latest cvs version of configure.in has this fixed. However at the moment I'm wrestling with the fact that the solaris box I normally use for compilations (which is not under my control) doesn't have any of the autoconf tools installed so I cannot rebuild and test there.

      I'll investigate the sourceforge compile farm next week to try it there. It's probably about time for a new io_lib distribution as I've fixed several other bugs too.

      Meanwhile, feel free to checkout a copy from the anonymous cvs tree and use ./bootstrap to build the configure script.

      James

       
    • Thank you. I am building the Io_Lib as standalone and I do not have autoconf either. I added your suggestion into the configue.in and re-configured but I still got the same error at convert_trace.

       
    • James Bonfield
      James Bonfield
      2006-01-03

      Have you tried the very latest io_lib release?

      1.9.2 should have fixed this issue.

      James