--- /dev/null
+package "openal"
+{
+ if_arch "windows"
+ {
+ feature "winmm" "Enable WinMM backend"
+ {
+ default "yes";
+ };
+ if_feature "winmm"
+ {
+ build_info
+ {
+ library "winmm";
+ };
+ };
+
+ feature "dsound" "Enable DirectSound backend"
+ {
+ default "yes";
+ };
+
+ feature "wasapi" "Enable WASAPI backend"
+ {
+ default "yes";
+ };
+ };
+
+ feature "wave" "Enable WaveFile backend"
+ {
+ default "yes";
+ };
+
+ build_info
+ {
+ incpath ".";
+ incpath "common";
+ define "HAVE_MALLOC_H" "1";
+ define "HAVE_PTHREAD_SETSCHEDPARAM" "1";
+ define "RESTRICT" " ";
+ };
+
+ if_arch "linux"
+ {
+ define "HAVE_PTHREAD_SETNAME_NP" "1";
+ build_info
+ {
+ library "dl";
+ };
+ };
+
+ if_arch "windows"
+ {
+ build_info
+ {
+ define "NOMINMAX" "1";
+ define "HAVE__ALIGNED_MALLOC" "1";
+ define "HAVE_INTRIN_H" "1";
+ define "HAVE_CPUID_INTRINSIC" "1";
+ define "HAVE_GUIDDEF_H" "1";
+ define "HAVE_INITGUID_H" "1";
+ define "AL_API" "__declspec(dllexport)";
+ define "ALC_API" "__declspec(dllexport)";
+ library "ole32";
+ library "shell32";
+ library "user32";
+ };
+ };
+
+ if_arch "gcc"
+ {
+ build_info
+ {
+ define "HAVE_CPUID_H" "1";
+ define "HAVE_GCC_GET_CPUID" "1";
+ define "AL_API" "__attribute__((visibility(\"default\")))";
+ define "ALC_API" "__attribute__((visibility(\"default\")))";
+ };
+ };
+
+ if_arch "msvc"
+ {
+ build_info
+ {
+ fatal_warnings false;
+ };
+ };
+
+ if_arch "!windows"
+ {
+ build_info
+ {
+ define "HAVE_POSIX_MEMALIGN" "1";
+ define "HAVE_DLFCN_H" "1";
+ };
+ };
+
+ library "openal"
+ {
+ source "common/albit.h";
+ source "common/albyte.h";
+ source "common/alcomplex.cpp";
+ source "common/alcomplex.h";
+ source "common/aldeque.h";
+ source "common/alfstream.cpp";
+ source "common/alfstream.h";
+ source "common/almalloc.cpp";
+ source "common/almalloc.h";
+ source "common/alnumbers.h";
+ source "common/alnumeric.h";
+ source "common/aloptional.h";
+ source "common/alspan.h";
+ source "common/alstring.cpp";
+ source "common/alstring.h";
+ source "common/altraits.h";
+ source "common/atomic.h";
+ source "common/comptr.h";
+ source "common/dynload.cpp";
+ source "common/dynload.h";
+ source "common/intrusive_ptr.h";
+ source "common/opthelpers.h";
+ source "common/phase_shifter.h";
+ source "common/polyphase_resampler.cpp";
+ source "common/polyphase_resampler.h";
+ source "common/pragmadefs.h";
+ source "common/ringbuffer.cpp";
+ source "common/ringbuffer.h";
+ source "common/strutils.cpp";
+ source "common/strutils.h";
+ source "common/threads.cpp";
+ source "common/threads.h";
+ source "common/vecmat.h";
+ source "common/vector.h";
+
+ source "core/ambdec.cpp";
+ source "core/ambdec.h";
+ source "core/ambidefs.cpp";
+ source "core/ambidefs.h";
+ source "core/async_event.h";
+ source "core/bformatdec.cpp";
+ source "core/bformatdec.h";
+ source "core/bs2b.cpp";
+ source "core/bs2b.h";
+ source "core/bsinc_defs.h";
+ source "core/bsinc_tables.cpp";
+ source "core/bsinc_tables.h";
+ source "core/bufferline.h";
+ source "core/buffer_storage.cpp";
+ source "core/buffer_storage.h";
+ source "core/context.cpp";
+ source "core/context.h";
+ source "core/converter.cpp";
+ source "core/converter.h";
+ source "core/cpu_caps.cpp";
+ source "core/cpu_caps.h";
+ source "core/cubic_defs.h";
+ source "core/cubic_tables.cpp";
+ source "core/cubic_tables.h";
+ source "core/devformat.cpp";
+ source "core/devformat.h";
+ source "core/device.cpp";
+ source "core/device.h";
+ source "core/effects/base.h";
+ source "core/effectslot.cpp";
+ source "core/effectslot.h";
+ source "core/except.cpp";
+ source "core/except.h";
+ source "core/filters/biquad.h";
+ source "core/filters/biquad.cpp";
+ source "core/filters/nfc.cpp";
+ source "core/filters/nfc.h";
+ source "core/filters/splitter.cpp";
+ source "core/filters/splitter.h";
+ source "core/fmt_traits.cpp";
+ source "core/fmt_traits.h";
+ source "core/fpu_ctrl.cpp";
+ source "core/fpu_ctrl.h";
+ source "core/front_stablizer.h";
+ source "core/helpers.cpp";
+ source "core/helpers.h";
+ source "core/hrtf.cpp";
+ source "core/hrtf.h";
+ source "core/logging.cpp";
+ source "core/logging.h";
+ source "core/mastering.cpp";
+ source "core/mastering.h";
+ source "core/mixer.cpp";
+ source "core/mixer.h";
+ source "core/resampler_limits.h";
+ source "core/uhjfilter.cpp";
+ source "core/uhjfilter.h";
+ source "core/uiddefs.cpp";
+ source "core/voice.cpp";
+ source "core/voice.h";
+ source "core/voice_change.h";
+
+ source "core/mixer/defs.h";
+ source "core/mixer/hrtfbase.h";
+ source "core/mixer/hrtfdefs.h";
+ source "core/mixer/mixer_c.cpp";
+
+ source "al/auxeffectslot.cpp";
+ source "al/auxeffectslot.h";
+ source "al/buffer.cpp";
+ source "al/buffer.h";
+ source "al/effect.cpp";
+ source "al/effect.h";
+ source "al/effects/autowah.cpp";
+ source "al/effects/chorus.cpp";
+ source "al/effects/compressor.cpp";
+ source "al/effects/convolution.cpp";
+ source "al/effects/dedicated.cpp";
+ source "al/effects/distortion.cpp";
+ source "al/effects/echo.cpp";
+ source "al/effects/effects.cpp";
+ source "al/effects/effects.h";
+ source "al/effects/equalizer.cpp";
+ source "al/effects/fshifter.cpp";
+ source "al/effects/modulator.cpp";
+ source "al/effects/null.cpp";
+ source "al/effects/pshifter.cpp";
+ source "al/effects/reverb.cpp";
+ source "al/effects/vmorpher.cpp";
+ source "al/error.cpp";
+ source "al/event.cpp";
+ source "al/event.h";
+ source "al/extension.cpp";
+ source "al/filter.cpp";
+ source "al/filter.h";
+ source "al/listener.cpp";
+ source "al/listener.h";
+ source "al/source.cpp";
+ source "al/source.h";
+ source "al/state.cpp";
+
+ source "alc/alc.cpp";
+ source "alc/alu.cpp";
+ source "alc/alu.h";
+ source "alc/alconfig.cpp";
+ source "alc/alconfig.h";
+ source "alc/context.cpp";
+ source "alc/context.h";
+ source "alc/device.cpp";
+ source "alc/device.h";
+ source "alc/effects/base.h";
+ source "alc/effects/autowah.cpp";
+ source "alc/effects/chorus.cpp";
+ source "alc/effects/compressor.cpp";
+ source "alc/effects/convolution.cpp";
+ source "alc/effects/dedicated.cpp";
+ source "alc/effects/distortion.cpp";
+ source "alc/effects/echo.cpp";
+ source "alc/effects/equalizer.cpp";
+ source "alc/effects/fshifter.cpp";
+ source "alc/effects/modulator.cpp";
+ source "alc/effects/null.cpp";
+ source "alc/effects/pshifter.cpp";
+ source "alc/effects/reverb.cpp";
+ source "alc/effects/vmorpher.cpp";
+ source "alc/inprogext.h";
+ source "alc/panning.cpp";
+
+ if_arch "x86-64"
+ {
+ source "core/mixer/mixer_sse2.cpp";
+ build_info
+ {
+ define "HAVE_SSE2" "1";
+ define "HAVE_SSE_INTRINSICS" "1";
+ };
+ };
+
+ source "alc/backends/base.cpp";
+ source "alc/backends/base.h";
+ source "alc/backends/loopback.cpp";
+ source "alc/backends/loopback.h";
+ source "alc/backends/null.cpp";
+ source "alc/backends/null.h";
+
+ if_feature "winmm"
+ {
+ source "alc/backends/winmm.cpp";
+ source "alc/backends/winmm.h";
+ };
+
+ if_feature "dsound"
+ {
+ source "alc/backends/dsound.cpp";
+ source "alc/backends/dsound.h";
+ };
+
+ if_feature "wasapi"
+ {
+ source "alc/backends/wasapi.cpp";
+ source "alc/backends/wasapi.h";
+ };
+
+ if_feature "wave"
+ {
+ source "alc/backends/wave.cpp";
+ source "alc/backends/wave.h";
+ };
+
+ build_info
+ {
+ define "AL_BUILD_LIBRARY" "1";
+ define "AL_ALEXT_PROTOTYPES" "1";
+ };
+
+ install true;
+ install_headers false;
+ };
+
+ install "include/AL"
+ {
+ source "include/AL";
+ };
+};