Make client for Windows x86_64 use OpenAL64.dll by default

ioquake3.x86_64.exe can't load x86 OpenAL32.dll. Using separate
library names allows shipping OpenAL for both architectures.

Though since the dll name is saved in the config file, using both
clients on the same computer will cause one client arch to always
try to load the wrong OpenAL dll and then fallback to the correct
default OpenAL dll. I guess it could be fixed by using separate
cvar names for s_alDriver.
This commit is contained in:
Zack Middleton 2017-09-04 20:02:17 -05:00
parent 8192f66b39
commit c2ce1c2f51
2 changed files with 11 additions and 2 deletions

View file

@ -2206,7 +2206,9 @@ static ALCdevice *alCaptureDevice;
static cvar_t *s_alCapture;
#endif
#ifdef _WIN32
#if defined(_WIN64)
#define ALDRIVER_DEFAULT "OpenAL64.dll"
#elif defined(_WIN32)
#define ALDRIVER_DEFAULT "OpenAL32.dll"
#elif defined(__APPLE__)
#define ALDRIVER_DEFAULT "/System/Library/Frameworks/OpenAL.framework/OpenAL"

View file

@ -38,6 +38,13 @@ ifndef SDLDLL
SDLDLL=SDL2.dll
endif
endif
ifndef OPENALDLL
ifeq ($(ARCH),x86_64)
OPENALDLL=OpenAL64.dll
else
OPENALDLL=OpenAL32.dll
endif
endif
DEFINES=
ifeq ($(USE_RENDERER_DLOPEN),1)
@ -63,7 +70,7 @@ endif
all: ioquake3-$(VERSION)-$(RELEASE).$(ARCH).exe
ioquake3.$(ARCH).nsi: ioquake3.nsi.in
sed 's/XXXVERSIONXXX/$(VERSION)/;s/XXXRELEASEXXX/$(RELEASE)/;s/mingw32/$(PLATFORM)/g;s/x86/$(ARCH)/g;s/SDL2.dll/$(SDLDLL)/g' < $< > $@
sed 's/XXXVERSIONXXX/$(VERSION)/;s/XXXRELEASEXXX/$(RELEASE)/;s/mingw32/$(PLATFORM)/g;s/x86/$(ARCH)/g;s/SDL2.dll/$(SDLDLL)/g;s/OpenAL32.dll/$(OPENALDLL)/g' < $< > $@
ioquake3-$(VERSION)-$(RELEASE).$(ARCH).exe: ioquake3.$(ARCH).nsi
makensis $(DEFINES) ioquake3.$(ARCH).nsi