Modular rendering system. Patch by use.less01
This might break MSVC builds. I'll take care of it later
This commit is contained in:
parent
8ab958fab9
commit
40dfcee06e
24 changed files with 335 additions and 186 deletions
259
Makefile
259
Makefile
|
@ -159,6 +159,10 @@ ifndef USE_LOCAL_HEADERS
|
|||
USE_LOCAL_HEADERS=1
|
||||
endif
|
||||
|
||||
ifndef USE_RENDERER_DLOPEN
|
||||
USE_RENDERER_DLOPEN=1
|
||||
endif
|
||||
|
||||
ifndef DEBUG_CFLAGS
|
||||
DEBUG_CFLAGS=-g -O0
|
||||
endif
|
||||
|
@ -290,6 +294,10 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu"))
|
|||
ifeq ($(USE_CODEC_VORBIS),1)
|
||||
CLIENT_CFLAGS += -DUSE_CODEC_VORBIS
|
||||
endif
|
||||
|
||||
ifeq ($(USE_RENDERER_DLOPEN),1)
|
||||
CLIENT_CFLAGS += -DUSE_RENDERER_DLOPEN
|
||||
endif
|
||||
|
||||
OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
|
||||
OPTIMIZE = $(OPTIMIZEVM) -ffast-math
|
||||
|
@ -499,6 +507,10 @@ ifeq ($(PLATFORM),mingw32)
|
|||
ifeq ($(USE_CODEC_VORBIS),1)
|
||||
CLIENT_CFLAGS += -DUSE_CODEC_VORBIS
|
||||
endif
|
||||
|
||||
ifeq ($(USE_RENDERER_DLOPEN),1)
|
||||
CLIENT_CFLAGS += -DUSE_RENDERER_DLOPEN
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x64)
|
||||
OPTIMIZEVM = -O3 -fno-omit-frame-pointer \
|
||||
|
@ -856,9 +868,16 @@ ifneq ($(BUILD_SERVER),0)
|
|||
endif
|
||||
|
||||
ifneq ($(BUILD_CLIENT),0)
|
||||
TARGETS += $(B)/ioquake3$(FULLBINEXT)
|
||||
ifneq ($(BUILD_CLIENT_SMP),0)
|
||||
TARGETS += $(B)/ioquake3-smp$(FULLBINEXT)
|
||||
ifneq ($(USE_RENDERER_DLOPEN),0)
|
||||
TARGETS += $(B)/ioquake3$(FULLBINEXT) $(B)/renderer_opengl1_$(SHLIBNAME)
|
||||
ifneq ($(BUILD_CLIENT_SMP),0)
|
||||
TARGETS += $(B)/renderer_opengl1_smp_$(SHLIBNAME)
|
||||
endif
|
||||
else
|
||||
TARGETS += $(B)/ioquake3$(FULLBINEXT)
|
||||
ifneq ($(BUILD_CLIENT_SMP),0)
|
||||
TARGETS += $(B)/ioquake3-smp$(FULLBINEXT)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -961,9 +980,14 @@ $(echo_cmd) "CC $<"
|
|||
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
|
||||
endef
|
||||
|
||||
define DO_REF_CC
|
||||
$(echo_cmd) "REF_CC $<"
|
||||
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
|
||||
endef
|
||||
|
||||
define DO_SMP_CC
|
||||
$(echo_cmd) "SMP_CC $<"
|
||||
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -DSMP -o $@ -c $<
|
||||
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -DSMP -o $@ -c $<
|
||||
endef
|
||||
|
||||
define DO_BOT_CC
|
||||
|
@ -1123,6 +1147,8 @@ makedirs:
|
|||
@if [ ! -d $(B) ];then $(MKDIR) $(B);fi
|
||||
@if [ ! -d $(B)/client ];then $(MKDIR) $(B)/client;fi
|
||||
@if [ ! -d $(B)/clientsmp ];then $(MKDIR) $(B)/clientsmp;fi
|
||||
@if [ ! -d $(B)/renderer ];then $(MKDIR) $(B)/renderer;fi
|
||||
@if [ ! -d $(B)/renderersmp ];then $(MKDIR) $(B)/renderersmp;fi
|
||||
@if [ ! -d $(B)/ded ];then $(MKDIR) $(B)/ded;fi
|
||||
@if [ ! -d $(B)/baseq3 ];then $(MKDIR) $(B)/baseq3;fi
|
||||
@if [ ! -d $(B)/baseq3/cgame ];then $(MKDIR) $(B)/baseq3/cgame;fi
|
||||
|
@ -1412,37 +1438,7 @@ Q3OBJ = \
|
|||
$(B)/client/l_precomp.o \
|
||||
$(B)/client/l_script.o \
|
||||
$(B)/client/l_struct.o \
|
||||
$(B)/client/tr_animation.o \
|
||||
$(B)/client/tr_backend.o \
|
||||
$(B)/client/tr_bsp.o \
|
||||
$(B)/client/tr_cmds.o \
|
||||
$(B)/client/tr_curve.o \
|
||||
$(B)/client/tr_flares.o \
|
||||
$(B)/client/tr_font.o \
|
||||
$(B)/client/tr_image.o \
|
||||
$(B)/client/tr_image_png.o \
|
||||
$(B)/client/tr_image_jpg.o \
|
||||
$(B)/client/tr_image_bmp.o \
|
||||
$(B)/client/tr_image_tga.o \
|
||||
$(B)/client/tr_image_pcx.o \
|
||||
$(B)/client/tr_init.o \
|
||||
$(B)/client/tr_light.o \
|
||||
$(B)/client/tr_main.o \
|
||||
$(B)/client/tr_marks.o \
|
||||
$(B)/client/tr_mesh.o \
|
||||
$(B)/client/tr_model.o \
|
||||
$(B)/client/tr_model_iqm.o \
|
||||
$(B)/client/tr_noise.o \
|
||||
$(B)/client/tr_scene.o \
|
||||
$(B)/client/tr_shade.o \
|
||||
$(B)/client/tr_shade_calc.o \
|
||||
$(B)/client/tr_shader.o \
|
||||
$(B)/client/tr_shadows.o \
|
||||
$(B)/client/tr_sky.o \
|
||||
$(B)/client/tr_surface.o \
|
||||
$(B)/client/tr_world.o \
|
||||
\
|
||||
$(B)/client/sdl_gamma.o \
|
||||
$(B)/client/sdl_input.o \
|
||||
$(B)/client/sdl_snd.o \
|
||||
\
|
||||
|
@ -1450,54 +1446,95 @@ Q3OBJ = \
|
|||
$(B)/client/con_log.o \
|
||||
$(B)/client/sys_main.o
|
||||
|
||||
Q3ROBJ = \
|
||||
$(B)/renderer/tr_animation.o \
|
||||
$(B)/renderer/tr_backend.o \
|
||||
$(B)/renderer/tr_bsp.o \
|
||||
$(B)/renderer/tr_cmds.o \
|
||||
$(B)/renderer/tr_curve.o \
|
||||
$(B)/renderer/tr_flares.o \
|
||||
$(B)/renderer/tr_font.o \
|
||||
$(B)/renderer/tr_image.o \
|
||||
$(B)/renderer/tr_image_png.o \
|
||||
$(B)/renderer/tr_image_jpg.o \
|
||||
$(B)/renderer/tr_image_bmp.o \
|
||||
$(B)/renderer/tr_image_tga.o \
|
||||
$(B)/renderer/tr_image_pcx.o \
|
||||
$(B)/renderer/tr_init.o \
|
||||
$(B)/renderer/tr_light.o \
|
||||
$(B)/renderer/tr_main.o \
|
||||
$(B)/renderer/tr_marks.o \
|
||||
$(B)/renderer/tr_mesh.o \
|
||||
$(B)/renderer/tr_model.o \
|
||||
$(B)/renderer/tr_model_iqm.o \
|
||||
$(B)/renderer/tr_noise.o \
|
||||
$(B)/renderer/tr_scene.o \
|
||||
$(B)/renderer/tr_shade.o \
|
||||
$(B)/renderer/tr_shade_calc.o \
|
||||
$(B)/renderer/tr_shader.o \
|
||||
$(B)/renderer/tr_shadows.o \
|
||||
$(B)/renderer/tr_sky.o \
|
||||
$(B)/renderer/tr_surface.o \
|
||||
$(B)/renderer/tr_world.o \
|
||||
\
|
||||
$(B)/renderer/sdl_gamma.o
|
||||
|
||||
ifneq ($(USE_RENDERER_DLOPEN), 0)
|
||||
Q3ROBJ += \
|
||||
$(B)/renderer/q_shared.o \
|
||||
$(B)/renderer/puff.o \
|
||||
$(B)/renderer/q_math.o \
|
||||
$(B)/renderer/tr_subs.o
|
||||
endif
|
||||
|
||||
ifneq ($(USE_INTERNAL_JPEG),0)
|
||||
Q3OBJ += \
|
||||
$(B)/client/jaricom.o \
|
||||
$(B)/client/jcapimin.o \
|
||||
$(B)/client/jcapistd.o \
|
||||
$(B)/client/jcarith.o \
|
||||
$(B)/client/jccoefct.o \
|
||||
$(B)/client/jccolor.o \
|
||||
$(B)/client/jcdctmgr.o \
|
||||
$(B)/client/jchuff.o \
|
||||
$(B)/client/jcinit.o \
|
||||
$(B)/client/jcmainct.o \
|
||||
$(B)/client/jcmarker.o \
|
||||
$(B)/client/jcmaster.o \
|
||||
$(B)/client/jcomapi.o \
|
||||
$(B)/client/jcparam.o \
|
||||
$(B)/client/jcprepct.o \
|
||||
$(B)/client/jcsample.o \
|
||||
$(B)/client/jctrans.o \
|
||||
$(B)/client/jdapimin.o \
|
||||
$(B)/client/jdapistd.o \
|
||||
$(B)/client/jdarith.o \
|
||||
$(B)/client/jdatadst.o \
|
||||
$(B)/client/jdatasrc.o \
|
||||
$(B)/client/jdcoefct.o \
|
||||
$(B)/client/jdcolor.o \
|
||||
$(B)/client/jddctmgr.o \
|
||||
$(B)/client/jdhuff.o \
|
||||
$(B)/client/jdinput.o \
|
||||
$(B)/client/jdmainct.o \
|
||||
$(B)/client/jdmarker.o \
|
||||
$(B)/client/jdmaster.o \
|
||||
$(B)/client/jdmerge.o \
|
||||
$(B)/client/jdpostct.o \
|
||||
$(B)/client/jdsample.o \
|
||||
$(B)/client/jdtrans.o \
|
||||
$(B)/client/jerror.o \
|
||||
$(B)/client/jfdctflt.o \
|
||||
$(B)/client/jfdctfst.o \
|
||||
$(B)/client/jfdctint.o \
|
||||
$(B)/client/jidctflt.o \
|
||||
$(B)/client/jidctfst.o \
|
||||
$(B)/client/jidctint.o \
|
||||
$(B)/client/jmemmgr.o \
|
||||
$(B)/client/jmemnobs.o \
|
||||
$(B)/client/jquant1.o \
|
||||
$(B)/client/jquant2.o \
|
||||
$(B)/client/jutils.o
|
||||
Q3ROBJ += \
|
||||
$(B)/renderer/jaricom.o \
|
||||
$(B)/renderer/jcapimin.o \
|
||||
$(B)/renderer/jcapistd.o \
|
||||
$(B)/renderer/jcarith.o \
|
||||
$(B)/renderer/jccoefct.o \
|
||||
$(B)/renderer/jccolor.o \
|
||||
$(B)/renderer/jcdctmgr.o \
|
||||
$(B)/renderer/jchuff.o \
|
||||
$(B)/renderer/jcinit.o \
|
||||
$(B)/renderer/jcmainct.o \
|
||||
$(B)/renderer/jcmarker.o \
|
||||
$(B)/renderer/jcmaster.o \
|
||||
$(B)/renderer/jcomapi.o \
|
||||
$(B)/renderer/jcparam.o \
|
||||
$(B)/renderer/jcprepct.o \
|
||||
$(B)/renderer/jcsample.o \
|
||||
$(B)/renderer/jctrans.o \
|
||||
$(B)/renderer/jdapimin.o \
|
||||
$(B)/renderer/jdapistd.o \
|
||||
$(B)/renderer/jdarith.o \
|
||||
$(B)/renderer/jdatadst.o \
|
||||
$(B)/renderer/jdatasrc.o \
|
||||
$(B)/renderer/jdcoefct.o \
|
||||
$(B)/renderer/jdcolor.o \
|
||||
$(B)/renderer/jddctmgr.o \
|
||||
$(B)/renderer/jdhuff.o \
|
||||
$(B)/renderer/jdinput.o \
|
||||
$(B)/renderer/jdmainct.o \
|
||||
$(B)/renderer/jdmarker.o \
|
||||
$(B)/renderer/jdmaster.o \
|
||||
$(B)/renderer/jdmerge.o \
|
||||
$(B)/renderer/jdpostct.o \
|
||||
$(B)/renderer/jdsample.o \
|
||||
$(B)/renderer/jdtrans.o \
|
||||
$(B)/renderer/jerror.o \
|
||||
$(B)/renderer/jfdctflt.o \
|
||||
$(B)/renderer/jfdctfst.o \
|
||||
$(B)/renderer/jfdctint.o \
|
||||
$(B)/renderer/jidctflt.o \
|
||||
$(B)/renderer/jidctfst.o \
|
||||
$(B)/renderer/jidctint.o \
|
||||
$(B)/renderer/jmemmgr.o \
|
||||
$(B)/renderer/jmemnobs.o \
|
||||
$(B)/renderer/jquant1.o \
|
||||
$(B)/renderer/jquant2.o \
|
||||
$(B)/renderer/jutils.o
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
|
@ -1656,22 +1693,40 @@ ifeq ($(USE_MUMBLE),1)
|
|||
endif
|
||||
|
||||
Q3POBJ += \
|
||||
$(B)/client/sdl_glimp.o
|
||||
$(B)/renderer/sdl_glimp.o
|
||||
|
||||
Q3POBJ_SMP += \
|
||||
$(B)/clientsmp/sdl_glimp.o
|
||||
$(B)/renderersmp/sdl_glimp.o
|
||||
|
||||
$(B)/ioquake3$(FULLBINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
|
||||
ifneq ($(USE_RENDERER_DLOPEN),0)
|
||||
$(B)/ioquake3$(FULLBINEXT): $(Q3OBJ) $(LIBSDLMAIN)
|
||||
$(echo_cmd) "LD $@"
|
||||
$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@ $(Q3OBJ) $(Q3POBJ) \
|
||||
-o $@ $(Q3OBJ) \
|
||||
$(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
|
||||
|
||||
$(B)/ioquake3-smp$(FULLBINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
|
||||
$(B)/renderer_opengl1_$(SHLIBNAME): $(Q3ROBJ) $(Q3POBJ)
|
||||
$(echo_cmd) "LD $@"
|
||||
$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3ROBJ) $(Q3POBJ) \
|
||||
$(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
|
||||
|
||||
$(B)/renderer_opengl1_smp_$(SHLIBNAME): $(Q3ROBJ) $(Q3POBJ_SMP)
|
||||
$(echo_cmd) "LD $@"
|
||||
$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3ROBJ) $(Q3POBJ_SMP) \
|
||||
$(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
|
||||
else
|
||||
$(B)/ioquake3$(FULLBINEXT): $(Q3OBJ) $(Q3ROBJ) $(Q3POBJ) $(LIBSDLMAIN)
|
||||
$(echo_cmd) "LD $@"
|
||||
$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@ $(Q3OBJ) $(Q3ROBJ) $(Q3POBJ) \
|
||||
$(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
|
||||
|
||||
$(B)/ioquake3-smp$(FULLBINEXT): $(Q3OBJ) $(Q3ROBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
|
||||
$(echo_cmd) "LD $@"
|
||||
$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) $(THREAD_LDFLAGS) \
|
||||
-o $@ $(Q3OBJ) $(Q3POBJ_SMP) \
|
||||
-o $@ $(Q3OBJ) $(Q3ROBJ) $(Q3POBJ_SMP) \
|
||||
$(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBSDLMAIN)),)
|
||||
ifneq ($(strip $(LIBSDLMAINSRC)),)
|
||||
|
@ -2175,22 +2230,16 @@ $(B)/client/%.o: $(CMDIR)/%.c
|
|||
$(B)/client/%.o: $(BLIBDIR)/%.c
|
||||
$(DO_BOT_CC)
|
||||
|
||||
$(B)/client/%.o: $(JPDIR)/%.c
|
||||
$(DO_CC)
|
||||
|
||||
$(B)/client/%.o: $(SPEEXDIR)/%.c
|
||||
$(DO_CC)
|
||||
|
||||
$(B)/client/%.o: $(ZDIR)/%.c
|
||||
$(DO_CC)
|
||||
|
||||
$(B)/client/%.o: $(RDIR)/%.c
|
||||
$(DO_CC)
|
||||
|
||||
$(B)/client/%.o: $(SDLDIR)/%.c
|
||||
$(DO_CC)
|
||||
|
||||
$(B)/clientsmp/%.o: $(SDLDIR)/%.c
|
||||
$(B)/renderersmp/%.o: $(SDLDIR)/%.c
|
||||
$(DO_SMP_CC)
|
||||
|
||||
$(B)/client/%.o: $(SYSDIR)/%.c
|
||||
|
@ -2203,6 +2252,19 @@ $(B)/client/%.o: $(SYSDIR)/%.rc
|
|||
$(DO_WINDRES)
|
||||
|
||||
|
||||
$(B)/renderer/%.o: $(CMDIR)/%.c
|
||||
$(DO_REF_CC)
|
||||
|
||||
$(B)/renderer/%.o: $(SDLDIR)/%.c
|
||||
$(DO_REF_CC)
|
||||
|
||||
$(B)/renderer/%.o: $(JPDIR)/%.c
|
||||
$(DO_REF_CC)
|
||||
|
||||
$(B)/renderer/%.o: $(RDIR)/%.c
|
||||
$(DO_REF_CC)
|
||||
|
||||
|
||||
$(B)/ded/%.o: $(ASMDIR)/%.s
|
||||
$(DO_AS)
|
||||
|
||||
|
@ -2326,7 +2388,7 @@ $(B)/missionpack/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC)
|
|||
# MISC
|
||||
#############################################################################
|
||||
|
||||
OBJ = $(Q3OBJ) $(Q3POBJ) $(Q3POBJ_SMP) $(Q3DOBJ) \
|
||||
OBJ = $(Q3OBJ) $(Q3POBJ) $(Q3POBJ_SMP) $(Q3ROBJ) $(Q3DOBJ) \
|
||||
$(MPGOBJ) $(Q3GOBJ) $(Q3CGOBJ) $(MPCGOBJ) $(Q3UIOBJ) $(MPUIOBJ) \
|
||||
$(MPGVMOBJ) $(Q3GVMOBJ) $(Q3CGVMOBJ) $(MPCGVMOBJ) $(Q3UIVMOBJ) $(MPUIVMOBJ)
|
||||
TOOLSOBJ = $(LBURGOBJ) $(Q3CPPOBJ) $(Q3RCCOBJ) $(Q3LCCOBJ) $(Q3ASMOBJ)
|
||||
|
@ -2339,12 +2401,13 @@ copyfiles: release
|
|||
|
||||
ifneq ($(BUILD_CLIENT),0)
|
||||
$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/ioquake3$(FULLBINEXT) $(COPYBINDIR)/ioquake3$(FULLBINEXT)
|
||||
$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_$(SHLIBNAME)
|
||||
endif
|
||||
|
||||
# Don't copy the SMP until it's working together with SDL.
|
||||
#ifneq ($(BUILD_CLIENT_SMP),0)
|
||||
# $(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/ioquake3-smp$(FULLBINEXT) $(COPYBINDIR)/ioquake3-smp$(FULLBINEXT)
|
||||
#endif
|
||||
ifneq ($(BUILD_CLIENT_SMP),0)
|
||||
$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_smp_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_smp_$(SHLIBNAME)
|
||||
endif
|
||||
|
||||
ifneq ($(BUILD_SERVER),0)
|
||||
@if [ -f $(BR)/ioq3ded$(FULLBINEXT) ]; then \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue