Building Exult on Kubuntu

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Annorax
Posts: 81
Joined: Thu May 14, 2020 1:34 pm

Building Exult on Kubuntu

Post 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?
--------------
Knowledge is power. Power corrupts. Study hard. Become evil.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post by Dominus »

You need to install the devel or development packages
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post by marzo »

Try installing libogg-dev.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Annorax
Posts: 81
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post 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$
--------------
Knowledge is power. Power corrupts. Study hard. Become evil.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post by Dominus »

This might be fixed in SVN - which I highly recommend using over 1.4.9rc1
Or
https://wiki.edubuntu.org/GCC4.6
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Annorax
Posts: 81
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post 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$
--------------
Knowledge is power. Power corrupts. Study hard. Become evil.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post 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
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Annorax
Posts: 81
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post 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?
--------------
Knowledge is power. Power corrupts. Study hard. Become evil.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Building Exult on Kubuntu

Post 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... :(
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Locked