Page 1 of 1

Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 6:03 pm
by Annorax
I am trying to build the latest version of Exult on Kubuntu. I've been a very long time Exult user on Windows but am trying to learn Linux and therefore trying this out. When running configure, I get the following:

configure: error: *** must have Ogg/Vorbis installed!

But I have installed vorbis-tools, libogg0, liboggplay1 and a couple other seemingly related packages but I still get this. Can someone please tell me what specific package I must install?

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 6:06 pm
by Dominus
You need to install the devel or development packages

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 6:07 pm
by marzo
Try installing libogg-dev.

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 6:34 pm
by Annorax
Thank you both for the fast replies. With libogg-dev and libvorbis-dev, configure runs fine but make does not. This is 1.4.9rc1. Any ideas? Looks to be some errors in the code maybe?

matt@kubuntu:~/Downloads/exult-1.4.9rc1$ make
make all-recursive
make[1]: Entering directory `/home/matt/Downloads/exult-1.4.9rc1'
Making all in files
make[2]: Entering directory `/home/matt/Downloads/exult-1.4.9rc1/files'
Making all in zip
make[3]: Entering directory `/home/matt/Downloads/exult-1.4.9rc1/files/zip'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1/files/zip'
make[3]: Entering directory `/home/matt/Downloads/exult-1.4.9rc1/files'
if /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I./.. -I./../headers -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DXWIN -O2 -Wno-long-long -DEXULT_DATADIR=\"/usr/local/share/exult\" -g -O2 -MT Flat.lo -MD -MP -MF ".deps/Flat.Tpo" -c -o Flat.lo Flat.cc; \
then mv -f ".deps/Flat.Tpo" ".deps/Flat.Plo"; else rm -f ".deps/Flat.Tpo"; exit 1; fi
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I. -I.. -I./.. -I./../headers -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DXWIN -O2 -Wno-long-long -DEXULT_DATADIR=\"/usr/local/share/exult\" -g -O2 -MT Flat.lo -MD -MP -MF .deps/Flat.Tpo -c Flat.cc -o Flat.o
In file included from databuf.h:27:0,
from U7file.h:26,
from Flat.h:25,
from Flat.cc:26:
U7obj.h:144:2: error: ‘ptrdiff_t’ does not name a type
In file included from U7file.h:26:0,
from Flat.h:25,
from Flat.cc:26:
databuf.h: In member function ‘virtual bool BufferDataSource::eof()’:
databuf.h:306:59: error: expected type-specifier before ‘ptrdiff_t’
databuf.h:306:59: error: expected ‘>’ before ‘ptrdiff_t’
databuf.h:306:59: error: expected ‘(’ before ‘ptrdiff_t’
databuf.h:306:59: error: ‘ptrdiff_t’ was not declared in this scope
databuf.h:306:59: note: suggested alternatives:
/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28: note: ‘std::ptrdiff_t’
/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28: note: ‘std::ptrdiff_t’
databuf.h:306:75: error: expected ‘)’ before ‘;’ token
make[3]: *** [Flat.lo] Error 1
make[3]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1/files'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1/files'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1'
make: *** [all] Error 2
matt@kubuntu:~/Downloads/exult-1.4.9rc1$

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 6:42 pm
by Dominus
This might be fixed in SVN - which I highly recommend using over 1.4.9rc1
Or
https://wiki.edubuntu.org/GCC4.6

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 7:03 pm
by Annorax
Thanks again for the reply. I've gotten the code from SVN (and also installed two more packages, flex and byacc) and now I'm seeing this error.

make[3]: Entering directory `/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler'
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucparse.o -MD -MP -MF ".deps/ucparse.Tpo" -c -o ucparse.o ucparse.cc; \
then mv -f ".deps/ucparse.Tpo" ".deps/ucparse.Po"; else rm -f ".deps/ucparse.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucmain.o -MD -MP -MF ".deps/ucmain.Tpo" -c -o ucmain.o ucmain.cc; \
then mv -f ".deps/ucmain.Tpo" ".deps/ucmain.Po"; else rm -f ".deps/ucmain.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucclass.o -MD -MP -MF ".deps/ucclass.Tpo" -c -o ucclass.o ucclass.cc; \
then mv -f ".deps/ucclass.Tpo" ".deps/ucclass.Po"; else rm -f ".deps/ucclass.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucexpr.o -MD -MP -MF ".deps/ucexpr.Tpo" -c -o ucexpr.o ucexpr.cc; \
then mv -f ".deps/ucexpr.Tpo" ".deps/ucexpr.Po"; else rm -f ".deps/ucexpr.Tpo"; exit 1; fi
ucexpr.cc: In member function ‘void Uc_call_expression::check_params()’:
ucexpr.cc:858:35: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Wformat]
ucexpr.cc:858:35: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘std::vector::size_type {aka unsigned int}’ [-Wformat]
ucexpr.cc:877:67: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Wformat]
ucexpr.cc:886:32: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Wformat]
ucexpr.cc:895:69: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Wformat]
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucfun.o -MD -MP -MF ".deps/ucfun.Tpo" -c -o ucfun.o ucfun.cc; \
then mv -f ".deps/ucfun.Tpo" ".deps/ucfun.Po"; else rm -f ".deps/ucfun.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucloc.o -MD -MP -MF ".deps/ucloc.Tpo" -c -o ucloc.o ucloc.cc; \
then mv -f ".deps/ucloc.Tpo" ".deps/ucloc.Po"; else rm -f ".deps/ucloc.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucstmt.o -MD -MP -MF ".deps/ucstmt.Tpo" -c -o ucstmt.o ucstmt.cc; \
then mv -f ".deps/ucstmt.Tpo" ".deps/ucstmt.Po"; else rm -f ".deps/ucstmt.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucsym.o -MD -MP -MF ".deps/ucsym.Tpo" -c -o ucsym.o ucsym.cc; \
then mv -f ".deps/ucsym.Tpo" ".deps/ucsym.Po"; else rm -f ".deps/ucsym.Tpo"; exit 1; fi
ucsym.cc: In member function ‘virtual int Uc_function_symbol::gen_call(Basic_block*, Uc_function*, bool, Uc_expression*, Uc_array_expression*, bool, Uc_class*)’:
ucsym.cc:628:37: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Wformat]
ucsym.cc:628:37: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘std::vector::size_type {aka unsigned int}’ [-Wformat]
/bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -o ucc ucparse.o uclex.o ucmain.o ucclass.o ucexpr.o ucfun.o ucloc.o ucstmt.o ucsym.o ../libusecode.la -lasound
libtool: link: g++ -g -O2 -o ucc ucparse.o uclex.o ucmain.o ucclass.o ucexpr.o ucfun.o ucloc.o ucstmt.o ucsym.o ../.libs/libusecode.a -lasound
ucparse.o: In function `yyparse()':
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.cc:2625: undefined reference to `yylex()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.cc:5056: undefined reference to `yylex()'
ucparse.o: In function `yyparse()':
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1385: undefined reference to `end_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1373: undefined reference to `start_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1338: undefined reference to `start_breakable()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1251: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1239: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1232: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1109: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1083: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1086: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1081: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1071: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1075: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1069: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1061: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1065: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1059: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1054: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1038: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1036: undefined reference to `end_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1017: undefined reference to `start_loop()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:967: undefined reference to `end_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:964: undefined reference to `start_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:362: undefined reference to `end_fun_id()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:360: undefined reference to `start_fun_id()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1773: undefined reference to `end_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1770: undefined reference to `start_script()'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucparse.yy:1344: undefined reference to `end_breakable()'
ucmain.o: In function `main':
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucmain.cc:109: undefined reference to `yyin'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucmain.cc:123: undefined reference to `yyin'
/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler/ucmain.cc:95: undefined reference to `yyin'
collect2: ld returned 1 exit status
make[3]: *** [ucc] Error 1
make[3]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1/usecode/compiler'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1/usecode'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/Downloads/exult-1.4.9rc1'
make: *** [all] Error 2
matt@kubuntu:~/Downloads/exult-1.4.9rc1$

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 7:08 pm
by Dominus
Please use only SVN and not parts of it. That won't fix that problem of usecod compiler but you can disable it from configure

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 8:34 pm
by Annorax
Thanks for the tip. I extracted the SVN download to the same folder as before... probably not the best idea. Getting the SVN via "svn co https://exult.svn.sourceforge.net/svnroot/exult exult" and then running autogen/configure/make was successful.

One final question - not sure if this is a question for the Exult team or not. The Kubuntu repository has the latest version of Exult at 1.2, circa 2004 - hence why I wanted to build from source to get a recent version. How do programs get into these repositories, ie is it the developers of the program or of the Linux distro?

Re: Building Exult on Kubuntu

Posted: Sun Sep 02, 2012 8:46 pm
by Dominus
Good you got it going now :)

I don't know how the programs get into repositories but when they get in there, most distros are strict and will only allow final versions in their repository. Since our last version out was a release candidate, most will not carry it... :(