Hi,

On Fri, Feb 17 at 12:34, RM via Hampshire wrote:
> Hi all
> 
> Sorry to ask a question I've kind of asked before but...
> 
> I'm trying to compile Elkulator [1] from source.   I've done this before 
> and (forgive me I can't find the name of the list member who very kindly 
> helped) come across similar problems.   The docs tell me that certain 
...


Had a quick look at this, this morning, and have what I think is a solution.
I'm using a current version of Linux Mint but should be close enough to the
Ubuntu base to work.

First I installed the -dev version of all the prerequisite libraries using
the Synaptic package manager (other package managers are available :-).
Be sure to install version 4 of the Allegro library, the newer version 5
is likely to lead to a world of pain.

I also installed the latest automake and autoconf packages.  Automake is
definitely required at least.

Then I unpacked the tarball in a fresh working directory.

  mkdir x
  cd x
  tar xzf ../ElkulatorV1.0Linux.tar.gz 

Delete the symbolic links to the old automake version and replace with
links to the newer automake.  I only installed the links required for the
build, you may need to adjust the version to that you have installed.

  rm compile COPYING depcomp INSTALL install-sh missing
  ln -s /usr/share/automake-1.16/{install-sh,missing,depcomp} . 

There was a few iterations of ./configure && make here, but this is the
final result.

  ./configure 

Edit the uef.c file and correct an over enthusiastic pointer indirection.
I guess earlier compilers where not as sharp on their type checking.
There are a lot of other compiler warnings about memory safety etc that
should also be corrected, but this is the one that is stopping compilation.

  vi src/uef.c   (use whichever text editor you are comfortable with)

  Two lines to change as in this diff/patch.

--- z/src/uef.c 2010-07-17 09:15:23.000000000 +0100
+++ x/src/uef.c 2023-02-18 08:45:05.025148553 +0000
@@ -12,7 +12,7 @@
 
 int tapelcount,tapellatch,pps;
 int intone=0;
-gzFile *uef;
+gzFile uef;
 int cswena;
 
 int inchunk=0,chunkid=0,chunklen=0;
@@ -256,6 +256,6 @@
         if (uef)
        {
                gzclose(uef);
-               uef=(gzFile *)NULL;
+               uef=(gzFile)NULL;
        }
 }


Then edit the Makefile and add the maths library to the link list.
This is not the autoconf way to patch this and will be overwritten if
you run ./configure again.

  vi src/Makefile

  Just the one line this time.

--- z/src/Makefile      2023-02-18 10:17:18.032321661 +0000
+++ x/src/Makefile      2023-02-18 08:45:04.793160499 +0000
@@ -109,7 +109,7 @@
 INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
 LDFLAGS = 
 LIBOBJS = 
-LIBS = -lalut -lopenal -lz
+LIBS = -lalut -lopenal -lz -lm
 LTLIBOBJS = 
 MAKEINFO = ${SHELL} /home/rjd/tmp/z/missing --run makeinfo
 MKDIR_P = /usr/bin/mkdir -p


Finally.

  make
  ./elkulator 

HTH
-- 
        Bob Dunlop

-- 
Please post to: Hampshire@mailman.lug.org.uk
Web Interface: https://mailman.lug.org.uk/mailman/listinfo/hampshire
LUG URL: http://www.hantslug.org.uk
--------------------------------------------------------------

Reply via email to