OpenAL on OpenSolaris

When I was asked to look at Project Wonderland a while back, first thing I would like to do is to run it on my laptop. But guess what? No audio support for me because I am running Solaris and JOAL is not available.

So I started by trying to build OpenAL on Solaris, and after some dig, I managed to get a patch to enable build on Solaris with Sun Studio 12. At JavaOne, I talked to Ken Russel, the rockstar who maintains JOAL and JOGL, and we think it would be great to bring JOAL to Solaris(Actually, there are quite a few build out there, Second Life client for Solaris, SFE, CSW).

The patch was not get into the upstream due to broken SVN, so we would like to revisit the possibility to get patch into upstream. Since I upgraded to OpenSolaris 2008.05, so I pulled the trunk, applied the patch, but autotools is giving me some craziness, so I use cmake build which goes out smoothly(I built cmake myself, which is pretty straightforward, we should really consider to add it into OpenSolaris).

Now I am ready to roll, however, there are two packages I need to install before I can successfully build solaris backend.

pfexec pkg install SUNWaudh SUNWgnome-common-devel

With this new patch, now OpenAL can be built as simple as following:

~/prj/openal/OpenAL-Sample/build$ cmake .. -DCMAKE_C_FLAGS:STRING="-std=c99"
-- The C compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for thr_create in thread
-- Looking for thr_create in thread - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Performing Test HAVE_NANOSLEEP
-- Performing Test HAVE_NANOSLEEP - Success
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Determining select arguments
-- Determining select arguments - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for stropts.h
-- Looking for stropts.h - found
-- Looking for sys/ioctl.h
-- Looking for sys/ioctl.h - found
-- Performing Test HAVE_SNPRINTF
-- Performing Test HAVE_SNPRINTF - Success
-- DMEDIA header dmedia/audio.h not found.
-- DMEDIA support - disabled
-- pkg-config: Looking for esd
-- pkg-config: Looking for esd - not found
-- Looking for esd-config
-- Looking for esd-config - found
-- ESD support - dynamic
-- OSS header sys/soundcard.h not found.
-- OSS support - disabled
-- pkg-config: Looking for sdl
-- pkg-config: Looking for sdl - found
-- SDL support - dynamic
-- pkg-config: Looking for smpeg
-- pkg-config: Looking for smpeg - not found
-- Looking for smpeg-config
-- Looking for smpeg-config - not found
-- MP3 header smpeg.h not found.
-- MP3 support - disabled
-- pkg-config: Looking for vorbisfile
-- pkg-config: Looking for vorbisfile - found
-- VORBIS support - dynamic
-- Performing Test HAVE_ATTRIBUTE
-- Performing Test HAVE_ATTRIBUTE - Success
-- Performing Test HAVE_VISIBILITY
-- Performing Test HAVE_VISIBILITY - Failed
-- Writing config.h
-- Configuring done
-- Generating done
-- Build files have been written to: /export/home/henryjen/prj/openal-trunk/OpenAL-Sample/build
~/prj/openal/OpenAL-Sample/build$ make
Scanning dependencies of target InfoFile
[ 0%] Generating doc/openal.info

[ 2%] Built target InfoFile
Scanning dependencies of target openal
[ 4%] Building C object CMakeFiles/openal.dir/src/al_bpool.o
[ 6%] Building C object CMakeFiles/openal.dir/src/al_buffer.o
[ 8%] Building C object CMakeFiles/openal.dir/src/config/al_config.o
[ 10%] Building C object CMakeFiles/openal.dir/src/al_distance.o
[ 13%] Building C object CMakeFiles/openal.dir/src/al_dlopen.o
[ 15%] Building C object CMakeFiles/openal.dir/src/al_error.o
[ 17%] Building C object CMakeFiles/openal.dir/src/al_ext.o
[ 19%] Building C object CMakeFiles/openal.dir/src/al_filter.o
[ 21%] Building C object CMakeFiles/openal.dir/src/al_listen.o
[ 23%] Building C object CMakeFiles/openal.dir/src/al_main.o
[ 26%] Building C object CMakeFiles/openal.dir/src/al_mixer.o
[ 28%] Building C object CMakeFiles/openal.dir/src/al_mixfunc.o
[ 30%] Building C object CMakeFiles/openal.dir/src/al_mixmanager.o
[ 32%] Building C object CMakeFiles/openal.dir/src/al_mspool.o
[ 34%] Building C object CMakeFiles/openal.dir/src/al_mutexlib.o
[ 36%] Building C object CMakeFiles/openal.dir/src/al_queue.o
[ 39%] Building C object CMakeFiles/openal.dir/src/config/al_rctree.o
[ 41%] Building C object CMakeFiles/openal.dir/src/config/al_rcvar.o
[ 43%] Building C object CMakeFiles/openal.dir/src/al_source.o
[ 45%] Building C object CMakeFiles/openal.dir/src/al_spool.o
[ 47%] Building C object CMakeFiles/openal.dir/src/al_state.o
[ 50%] Building C object CMakeFiles/openal.dir/src/al_threadlib.o
[ 52%] Building C object CMakeFiles/openal.dir/src/al_vector.o
[ 54%] Building C object CMakeFiles/openal.dir/src/al_matrix.o
[ 56%] Building C object CMakeFiles/openal.dir/src/mixaudio16.o
[ 58%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend.o
[ 60%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend_solaris.o
[ 63%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend_esd.o
[ 65%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend_sdl.o
[ 67%] Building C object CMakeFiles/openal.dir/src/extensions/al_ext_vorbis.o
[ 69%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend_wave.o
[ 71%] Building C object CMakeFiles/openal.dir/src/backends/alc_backend_null.o
[ 73%] Building C object CMakeFiles/openal.dir/src/arch/portable/floatmul.o
[ 76%] Building C object CMakeFiles/openal.dir/src/alc/alc_context.o
[ 78%] Building C object CMakeFiles/openal.dir/src/alc/alc_speaker.o
[ 80%] Building C object CMakeFiles/openal.dir/src/alc/alc_error.o
[ 82%] Building C object CMakeFiles/openal.dir/src/alc/alc_device.o
[ 84%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_misc.o
[ 86%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_freq.o
[ 89%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_bits.o
[ 91%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_channels.o
[ 93%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_helper.o
[ 95%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_adpcm.o
[ 97%] Building C object CMakeFiles/openal.dir/src/audioconvert/ac_endian.o
[100%] Building C object CMakeFiles/openal.dir/src/extensions/al_ext_loki.o
Linking C shared library libopenal.so
[100%] Built target openal
Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

Whatever posted here is personal opinion of the author, Henry Jen, and not in any way represent the employer, Oracle Corp.

Search

Archives
« September 2015
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today