The Ur-Quan Masters Discussion Forum

The Ur-Quan Masters Re-Release => Technical Issues => Topic started by: wberry on July 27, 2006, 07:04:08 am



Title: Linux 0.5.0 build can't find libvorbisfile
Post by: wberry on July 27, 2006, 07:04:08 am
I run SUSE 10.1 so I need to build from source, but I'm having a problem with the libvorbis package.  The distro apparently included all the libogg and libvorbis binaries and I built vorbis-tools myself.  My /usr/lib contains:

libvorbisenc.so.2      libvorbisfile.so.3      libvorbis.so.0
libvorbisenc.so.2.0.2  libvorbisfile.so.3.1.1  libvorbis.so.0.3.1
libogg.so.0      libogg.so.0.5.3

(Some are symlinks.)  The master build.sh, run with only the 'uqm' parameter, prints this:

'echo -n' capable echo found.
Sed stream editor found.
tr found.
Make found.
GNU C compiler found.
Little-endian machine detected.
Simple DirectMedia Layer version 1.2.11 found.
SDL_image found.
Symbol 'readdir_r' found.
Symbol 'setenv' found.
Symbol 'strupr' not found.
Symbol 'stricmp' not found.
Symbol 'iswgraph' found.
Type 'wchar_t' found.
Type 'wint_t' found.
Symbol 'getopt_long' found.
Header 'regex.h' found.
OpenGL found.
pkg-config found.
vorbisfile not found.
tremor not found.
Error: No option for 'Ogg Vorbis codec' is available for your system.


Naturally I zoomed in on the "vorbisfile not found" line.  Because makefile generators tend to be impenetrable I ended up doing 'set -x' in build/unix/build.sh to see what it was doing.  Here's the full output of the check for libvorbisfile.so:

++ local LIB PKG_NAME TEMP_NAME
++ LIB=vorbisfile
++ PKG_NAME=vorbisfile
+++ evalVar LIB_vorbisfile_NAME
+++ local RESULT
+++ eval 'RESULT=$LIB_vorbisfile_NAME'
++++ RESULT=vorbisfile
+++ eval 'RESULT="vorbisfile"'
++++ RESULT=vorbisfile
+++ cat
++ TEMP_NAME=vorbisfile
++ '[' -z vorbisfile ']'
++ pkg-config --exists vorbisfile
++ return 2
++ case $? in
++ eval 'TEMP_PRESENT=$LIB_vorbisfile_PRESENT'
+++ TEMP_PRESENT=
++ '[' -z '' ']'
+++ evalVar LIB_vorbisfile_CFLAGS
+++ local RESULT
+++ eval 'RESULT=$LIB_vorbisfile_CFLAGS'
++++ RESULT=
+++ eval 'RESULT=""'
++++ RESULT=
+++ cat
++ TEMP_CFLAGS=
+++ evalVar LIB_vorbisfile_LDFLAGS
+++ local RESULT
+++ eval 'RESULT=$LIB_vorbisfile_LDFLAGS'
++++ RESULT='-lvorbisfile -lvorbis'
+++ eval 'RESULT="-lvorbisfile -lvorbis"'
++++ RESULT='-lvorbisfile -lvorbis'
+++ cat
++ TEMP_LDFLAGS='-lvorbisfile -lvorbis'
++ try_compile_c '' '-lvorbisfile -lvorbis'
++ local SYSTEM_FLAGS
++ '[' -z gcc ']'
++ SYSTEM_FLAGS='   '
++ cat
++ echo_and_perform gcc -lvorbisfile -lvorbis /tmp/build.2167.tmp.c -o /tmp/build.2167.tmp.out
++ RESULT=1
++ '[' 1 -ne 0 ']'
++ echo 'Failed program was:'
++ echo '+++ START /tmp/build.2167.tmp.c'
++ cat /tmp/build.2167.tmp.c
++ echo '+++ END /tmp/build.2167.tmp.c'
++ rm -f /tmp/build.2167.tmp.c /tmp/build.2167.tmp.out
++ echo
++ return 1
++ '[' 1 -eq 0 ']'
++ eval 'TEMP_PRESENT=$LIB_vorbisfile_PRESENT'
+++ TEMP_PRESENT=
++ '[' -z '' ']'
++ eval LIB_vorbisfile_PRESENT=1
+++ LIB_vorbisfile_PRESENT=1
++ build_message 'vorbisfile not found.'
++ '[' -z '' ']'
++ cat
vorbisfile not found.
++ return 1


Even when I explicitly set LIBPATH and LD_LIBRARY_PATH to include /usr/lib this check fails.  The only possible cause I can think of is header files - I can't find them.  I have built the libogg and libvorbis from source in my homedir but I want to avoid installing them globally if I can.

Is there any way to provide a path prefix for these libraries in the build?  Has anyone else run into this problem?


Title: Re: Linux 0.5.0 build can't find libvorbisfile
Post by: Novus on July 27, 2006, 03:45:56 pm
Blech. I had a nice response to this almost finished, then my laptop skipped from "battery OK" (25 % remaining) straight past "warning" (16 %) and "low" (6 %) to "critical" (2 %) and shut itself down, zapping my message and forum session in the process. I'll just have to retype from memory. Serves me right for trusting battery power. :(

SUSE 10.1 keeps header files and other stuff needed to compile but not run programs using libraries in packages called (foo-devel) for a package foo. Thus, you'll need the following packages (and their dependencies) installed:

  • gcc
  • make
  • pkgconfig
  • SDL-devel
  • SDL_image-devel
  • libmikmod
  • Mesa
  • libvorbis-devel
  • libogg-devel
  • zlib-devel

Just install these with YaST as normal. If you don't have all of these packages on your installation source (which is normal if you've installed from the downloadable ISO images; much of the "-devel" stuff is missing to save space), you will have to add a full source such as an Internet installation repository (http://en.opensuse.org/Mirrors_Released_Version) (in YaST: Software/Installation Source). From your description, you're missing libogg-devel and/or libvorbis-devel.


Title: Re: Linux 0.5.0 build can't find libvorbisfile
Post by: Zeep-Eeep on July 27, 2006, 05:34:45 pm
I think Fedora did this abotu a year ago, which broke smoe of
my builds. Hunting down -devel packages to
replace the -source packages was a pain.
It's nice they're developing standards though.