Index: Makefile =================================================================== --- Makefile.orig +++ Makefile @@ -132,6 +132,10 @@ ifndef COPYBINDIR COPYBINDIR=$(COPYDIR) endif +ifndef COPYLIBDIR +COPYLIBDIR=$(COPYDIR) +endif + ifndef MOUNT_DIR MOUNT_DIR=code endif @@ -956,6 +960,10 @@ ifdef DEFAULT_BASEDIR BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\" endif +ifdef DEFAULT_LIBDIR + BASE_CFLAGS += -DDEFAULT_LIBDIR=\\\"$(DEFAULT_LIBDIR)\\\" +endif + ifeq ($(USE_LOCAL_HEADERS),1) BASE_CFLAGS += -DUSE_LOCAL_HEADERS endif @@ -2452,18 +2460,18 @@ TOOLSOBJ = $(LBURGOBJ) $(Q3CPPOBJ) $(Q3R copyfiles: release @if [ ! -d $(COPYDIR)/$(BASEGAME) ]; then echo "You need to set COPYDIR to where your Quake3 data is!"; fi ifneq ($(BUILD_GAME_SO),0) - -$(MKDIR) -p -m 0755 $(COPYDIR)/$(BASEGAME) + -$(MKDIR) -p -m 0755 $(COPYLIBDIR)/$(BASEGAME) ifneq ($(BUILD_MISSIONPACK),0) - -$(MKDIR) -p -m 0755 $(COPYDIR)/$(MISSIONPACK) + -$(MKDIR) -p -m 0755 $(COPYLIBDIR)/$(MISSIONPACK) endif endif ifneq ($(BUILD_CLIENT),0) $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(CLIENTBIN)$(FULLBINEXT) $(COPYBINDIR)/$(CLIENTBIN)$(FULLBINEXT) ifneq ($(USE_RENDERER_DLOPEN),0) - $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_$(SHLIBNAME) + $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_$(SHLIBNAME) $(COPYLIBDIR)/renderer_opengl1_$(SHLIBNAME) ifneq ($(BUILD_RENDERER_GL2),0) - $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl2_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl2_$(SHLIBNAME) + $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl2_$(SHLIBNAME) $(COPYLIBDIR)/renderer_opengl2_$(SHLIBNAME) endif endif endif @@ -2471,7 +2479,7 @@ endif # Don't copy the SMP until it's working together with SDL. ifneq ($(BUILD_CLIENT_SMP),0) ifneq ($(USE_RENDERER_DLOPEN),0) - $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_smp_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_smp_$(SHLIBNAME) + $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_smp_$(SHLIBNAME) $(COPYLIBDIR)/renderer_opengl1_smp_$(SHLIBNAME) else $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(CLIENTBIN)-smp$(FULLBINEXT) $(COPYBINDIR)/$(CLIENTBIN)-smp$(FULLBINEXT) endif @@ -2485,19 +2493,19 @@ endif ifneq ($(BUILD_GAME_SO),0) $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/cgame$(SHLIBNAME) \ - $(COPYDIR)/$(BASEGAME)/. + $(COPYLIBDIR)/$(BASEGAME)/. $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/qagame$(SHLIBNAME) \ - $(COPYDIR)/$(BASEGAME)/. + $(COPYLIBDIR)/$(BASEGAME)/. $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/ui$(SHLIBNAME) \ - $(COPYDIR)/$(BASEGAME)/. + $(COPYLIBDIR)/$(BASEGAME)/. ifneq ($(BUILD_MISSIONPACK),0) -$(MKDIR) -p -m 0755 $(COPYDIR)/$(MISSIONPACK) $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/cgame$(SHLIBNAME) \ - $(COPYDIR)/$(MISSIONPACK)/. + $(COPYLIBDIR)/$(BASEGAME)/. $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/qagame$(SHLIBNAME) \ - $(COPYDIR)/$(MISSIONPACK)/. + $(COPYLIBDIR)/$(BASEGAME)/. $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/ui$(SHLIBNAME) \ - $(COPYDIR)/$(MISSIONPACK)/. + $(COPYLIBDIR)/$(BASEGAME)/. endif endif Index: code/qcommon/files.c =================================================================== --- code/qcommon/files.c.orig +++ code/qcommon/files.c @@ -1414,7 +1414,11 @@ vmInterpret_t FS_FindVM(void **startSear if(enableDll) { +#ifdef DEFAULT_LIBDIR + netpath = FS_BuildOSPath(DEFAULT_LIBDIR, dir->gamedir, dllName); +#else netpath = FS_BuildOSPath(dir->path, dir->gamedir, dllName); +#endif if(FS_FileInPathExists(netpath)) { Index: code/sys/sys_main.c =================================================================== --- code/sys/sys_main.c.orig +++ code/sys/sys_main.c @@ -429,6 +429,13 @@ void *Sys_LoadDll(const char *name, qboo const char *topDir; char libPath[MAX_OSPATH]; +#ifdef DEFAULT_LIBDIR + Com_Printf("Trying to load \"%s\" from \"%s\"...\n", name, DEFAULT_LIBDIR); + Com_sprintf(libPath, sizeof(libPath), "%s%c%s", DEFAULT_LIBDIR, PATH_SEP, name); + + if(!(dllhandle = Sys_LoadLibrary(libPath))) { +#endif + topDir = Sys_BinaryPath(); if(!*topDir) @@ -454,6 +461,9 @@ void *Sys_LoadDll(const char *name, qboo if(!dllhandle) Com_Printf("Loading \"%s\" failed\n", name); } +#ifdef DEFAULT_LIBDIR + } +#endif } return dllhandle;