The Ur-Quan Masters Discussion Forum

The Ur-Quan Masters Re-Release => Technical Issues => Topic started by: desertc on June 04, 2007, 09:57:55 am



Title: Trying to Compile on Linux (OGG Vorbis Errors)
Post by: desertc on June 04, 2007, 09:57:55 am
Thanks for your work on this game.  SC2 is the best game ever, and glad to see it get the respectful longevity it deserves.

So, I'm trying to compile uqm-0.6.2-source.tgz on Ubuntu 7.04 AMD64.

My first time trying to compile the code.  Instructions in the INSTALL file would have been helpful.  I didn't expect to see build.sh
Update: I found the reference on the download page about doc/users/unixinstall

I'm through the script to this error:
Error: No option for 'Ogg Vorbis codec' is available for your system.

The INSTALL file gives a 404 link to this library: http://www.vorbis.com/download_unix.psp

I have libogg0 and libogg-dev packages installed.  What else does the install need?
Update: it needed libvorbis-dev !

Update: okay, it started compiling.  I'll save this message in case anyone else has the same questions.

Update: compile errors.  not sure what is causing them yet.
Code:
...
  CC       obj/release/src/getopt/getopt.c.o
  CC       obj/release/src/getopt/getopt1.c.o
  LINK     uqm
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_Seek':
modaud.c:(.text+0xa8): undefined reference to `Player_Start'
modaud.c:(.text+0xc4): undefined reference to `Player_SetPosition'
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_Close':
modaud.c:(.text+0xde): undefined reference to `Player_Free'
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_InitModule':
modaud.c:(.text+0x111): undefined reference to `MikMod_RegisterDriver'
modaud.c:(.text+0x116): undefined reference to `MikMod_RegisterAllLoaders'
modaud.c:(.text+0x122): undefined reference to `md_mode'
modaud.c:(.text+0x12b): undefined reference to `md_mixfreq'
modaud.c:(.text+0x133): undefined reference to `md_reverb'
modaud.c:(.text+0x13f): undefined reference to `md_pansep'
modaud.c:(.text+0x145): undefined reference to `MikMod_Init'
modaud.c:(.text+0x168): undefined reference to `md_mode'
modaud.c:(.text+0x171): undefined reference to `md_mixfreq'
modaud.c:(.text+0x179): undefined reference to `md_reverb'
modaud.c:(.text+0x183): undefined reference to `md_mode'
modaud.c:(.text+0x18c): undefined reference to `md_mixfreq'
modaud.c:(.text+0x194): undefined reference to `md_reverb'
modaud.c:(.text+0x1a2): undefined reference to `MikMod_errno'
modaud.c:(.text+0x1a7): undefined reference to `MikMod_strerror'
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_mmout_Update':
modaud.c:(.text+0x201): undefined reference to `VC_WriteBytes'
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_mmout_Init':
modaud.c:(.text+0x223): undefined reference to `md_mode'
obj/release/src/sc2code/libs/sound/decoders/modaud.c.o: In function `moda_Decode':
modaud.c:(.text+0x308): undefined reference to `Player_Start'
...


Title: Re: Trying to Compile on Linux (OGG Vorbis Errors)
Post by: Novus on June 04, 2007, 12:27:12 pm
Looks like problems linking to MikMod. Use the built-in libmikmod to avoid this or try to sort out the system-wide configuration.


Title: Re: Trying to Compile on Linux (OGG Vorbis Errors)
Post by: desertc on June 05, 2007, 01:00:22 am
Thanks for your reply.  Got it figured out!  The install paths were not writable by my user id.  I ran the script as root (sudo), and it configured without a hitch!  (Is this generally correct that the Step 3 in the unixinstall process requires root?  If so, then not specified.)


Update: after putting the files into place, I get the following error.
Code:
mmm@salamander:/usr/local/games/bin$ ./uqm
The Ur-Quan Masters v0.6.2 (compiled Jun  4 2007 17:56:25)
This software comes with ABSOLUTELY NO WARRANTY;
for details see the included 'COPYING' file.

Netplay protocol version 0.3. Requiring remote UQM version 0.5.4.
Initializing base SDL functionality.
Using SDL version 1.2.11 (compiled with 1.2.11)
Using config dir '/home/mmm/.uqm/'
Using '/usr/local/games/share/uqm/content' as base content dir.
Saved games are kept in /home/mmm/.uqm/save/.
Initializing Pure-SDL graphics.
SDL driver used: x11
SDL initialized.
Initializing Screen.
Set the resolution to: 640x480x32
Screen scalers are using SSE/MMX-Ext/MMX code
0 joysticks were found.
Error: Could not copy default key config to user config dir: No such file or directory.
mmm@salamander:/usr/local/games/bin$  sudo uqm
sudo: uqm: command not found

What is the "default key config"?

(Update: Okay, I missed that step 2 in unixinstall!  I will load the content.)


Title: Re: Trying to Compile on Linux (OGG Vorbis Errors)
Post by: desertc on June 05, 2007, 07:02:59 am
Update: I couldn't figure this last problem out.  I tried downloading the content and configuring & building & installing again and I tried moving the content when I got the same error.

I'm giving up.  Don't bother trying to troubleshoot this for me - I leave it for others to search upon if they are having the same problems.

Maintainers: please at least update the unixinstall with a non-dead link for Vorbis.
Thanks for maintaining this terrific game.  Sorry that I wasn't able to figure out your install process.


Title: Re: Trying to Compile on Linux (OGG Vorbis Errors)
Post by: Novus on June 05, 2007, 08:58:09 am
UQM should build just fine without running as root (although the install will usually require root).

For reference (and in case desertc shows up again), the last problem is that the content directory is wrong; the specified content directory should either contain the unzipped content or (if ZIP support is compiled in) a directory "packages" containing the zipped content. See the Ultronomicon article on content management (http://uqm.stack.nl/wiki/Content_Management) for details.