⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 quakeIII源码这个不用我多说吧
💻
📖 第 1 页 / 共 5 页
字号:

#DO_LCC=$(LCC) -o $@ -S -Wf-target=bytecode -Wf-g -DQ3_VM -I$(CGDIR) -I$(GDIR)  -I$(UIDIR)  $< 

#### DEFAULT TARGET
default:build_debug

debug: build_debug
release: build_release

build_debug:
	$(MAKE)  targets B=$(BD) CFLAGS="$(DEBUG_CFLAGS)"

build_release:
	$(MAKE)  targets B=$(BR) CFLAGS="$(RELEASE_CFLAGS)"

#Build both debug and release builds
all:build_debug build_release

targets:makedirs $(TARGETS)

makedirs:
	@if [ ! -d $(B) ];then mkdir $(B);fi
	@if [ ! -d $(B)/client ];then mkdir $(B)/client;fi
	@if [ ! -d $(B)/ded ];then mkdir $(B)/ded;fi
	@if [ ! -d $(B)/ref ];then mkdir $(B)/ref;fi
	@if [ ! -d $(B)/ft2 ];then mkdir $(B)/ft2;fi
	@if [ ! -d $(B)/baseq3 ];then mkdir $(B)/baseq3;fi
	@if [ ! -d $(B)/baseq3/cgame ];then mkdir $(B)/baseq3/cgame;fi
	@if [ ! -d $(B)/baseq3/game ];then mkdir $(B)/baseq3/game;fi
	@if [ ! -d $(B)/baseq3/ui ];then mkdir $(B)/baseq3/ui;fi
	@if [ ! -d $(B)/baseq3/vm ];then mkdir $(B)/baseq3/vm;fi
	@if [ ! -d $(B)/missionpack ];then mkdir $(B)/missionpack;fi
	@if [ ! -d $(B)/missionpack/cgame ];then mkdir $(B)/missionpack/cgame;fi
	@if [ ! -d $(B)/missionpack/game ];then mkdir $(B)/missionpack/game;fi
	@if [ ! -d $(B)/missionpack/ui ];then mkdir $(B)/missionpack/ui;fi
	@if [ ! -d $(B)/missionpack/vm ];then mkdir $(B)/missionpack/vm;fi
	@if [ ! -d $(B)/q3static ];then mkdir $(B)/q3static;fi

#############################################################################
# CLIENT/SERVER
#############################################################################

Q3OBJ = \
	$(B)/client/cl_cgame.o \
	$(B)/client/cl_cin.o \
	$(B)/client/cl_console.o \
	$(B)/client/cl_input.o \
	$(B)/client/cl_keys.o \
	$(B)/client/cl_main.o \
	$(B)/client/cl_net_chan.o \
	$(B)/client/cl_parse.o \
	$(B)/client/cl_scrn.o \
	$(B)/client/cl_ui.o \
	\
	$(B)/client/cm_load.o \
	$(B)/client/cm_patch.o \
	$(B)/client/cm_polylib.o \
	$(B)/client/cm_test.o \
	$(B)/client/cm_trace.o \
	\
	$(B)/client/cmd.o \
	$(B)/client/common.o \
	$(B)/client/cvar.o \
	$(B)/client/files.o \
	$(B)/client/md4.o \
	$(B)/client/msg.o \
	$(B)/client/net_chan.o \
	$(B)/client/huffman.o \
	\
	$(B)/client/snd_adpcm.o \
	$(B)/client/snd_dma.o \
	$(B)/client/snd_mem.o \
	$(B)/client/snd_mix.o \
	$(B)/client/snd_wavelet.o \
	\
	$(B)/client/sv_bot.o \
	$(B)/client/sv_ccmds.o \
	$(B)/client/sv_client.o \
	$(B)/client/sv_game.o \
	$(B)/client/sv_init.o \
	$(B)/client/sv_main.o \
	$(B)/client/sv_net_chan.o \
	$(B)/client/sv_snapshot.o \
	$(B)/client/sv_world.o \
	\
	$(B)/client/q_math.o \
	$(B)/client/q_shared.o \
	\
	$(B)/client/unzip.o \
	$(B)/client/vm.o \
	$(B)/client/vm_interpreted.o \
	\
	$(B)/client/be_aas_bspq3.o \
	$(B)/client/be_aas_cluster.o \
	$(B)/client/be_aas_debug.o \
	$(B)/client/be_aas_entity.o \
	$(B)/client/be_aas_file.o \
	$(B)/client/be_aas_main.o \
	$(B)/client/be_aas_move.o \
	$(B)/client/be_aas_optimize.o \
	$(B)/client/be_aas_reach.o \
	$(B)/client/be_aas_route.o \
	$(B)/client/be_aas_routealt.o \
	$(B)/client/be_aas_sample.o \
	$(B)/client/be_ai_char.o \
	$(B)/client/be_ai_chat.o \
	$(B)/client/be_ai_gen.o \
	$(B)/client/be_ai_goal.o \
	$(B)/client/be_ai_move.o \
	$(B)/client/be_ai_weap.o \
	$(B)/client/be_ai_weight.o \
	$(B)/client/be_ea.o \
	$(B)/client/be_interface.o \
	$(B)/client/l_crc.o \
	$(B)/client/l_libvar.o \
	$(B)/client/l_log.o \
	$(B)/client/l_memory.o \
	$(B)/client/l_precomp.o \
	$(B)/client/l_script.o \
	$(B)/client/l_struct.o \
	\
	$(B)/client/jcapimin.o \
	$(B)/client/jchuff.o   \
	$(B)/client/jcinit.o \
	$(B)/client/jccoefct.o  \
	$(B)/client/jccolor.o \
	$(B)/client/jfdctflt.o \
	$(B)/client/jcdctmgr.o \
	$(B)/client/jcphuff.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/jdapimin.o \
	$(B)/client/jdapistd.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/jdpostct.o \
	$(B)/client/jdsample.o \
	$(B)/client/jdtrans.o \
	$(B)/client/jerror.o \
	$(B)/client/jidctflt.o \
	$(B)/client/jmemmgr.o \
	$(B)/client/jmemnobs.o \
	$(B)/client/jutils.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_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_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/unix_main.o \
	$(B)/client/unix_net.o \
	$(B)/client/unix_shared.o \
	\
	$(B)/client/ahoptim.o  \
	$(B)/client/autohint.o \
	$(B)/client/ftbase.o   \
	$(B)/client/ftdebug.o  \
	$(B)/client/ftglyph.o  \
	$(B)/client/ftinit.o   \
	$(B)/client/ftmm.o     \
	$(B)/client/ftsystem.o \
	$(B)/client/raster1.o  \
	$(B)/client/sfnt.o     \
	$(B)/client/sfobjs.o   \
	$(B)/client/smooth.o   \
	$(B)/client/truetype.o
#	\
#	$(B)/client/q_parse.o \
#	$(B)/client/math_quaternion.o \
#	$(B)/client/util_str.o \
#	$(B)/client/math_angles.o \
#	$(B)/client/math_vector.o \
#	$(B)/client/splines.o \
#	$(B)/client/math_matrix.o

#	$(B)/client/q_shared.o \

    ifeq ($(ARCH),i386)
	  Q3OBJ += $(B)/client/vm_x86.o
    endif

    ifeq ($(ARCH),ppc)
      ifeq ($(DLL_ONLY),false)
        Q3OBJ += $(B)/client/vm_ppc.o
      endif
    endif

#	$(B)/client/jctrans.o \

#platform specific objects
ifeq ($(PLATFORM),freebsd)
	Q3POBJ=\
		$(B)/client/linux_common.o \
		$(B)/client/linux_qgl.o \
		$(B)/client/linux_glimp.o \
		$(B)/client/linux_snd.o \
		$(B)/client/snd_mixa.o \
		$(B)/client/matha.o   \
		$(B)/client/ftol.o \
		$(B)/client/snapvector.o
else
ifeq ($(PLATFORM),irix)
	Q3POBJ=\
		$(B)/client/irix_qgl.o \
		$(B)/client/irix_glimp.o \
		$(B)/client/irix_snd.o
else
ifeq ($(PLATFORM),linux)
ifeq ($(ARCH),axp)
	Q3POBJ=
else
	Q3POBJ=\
		$(B)/client/linux_common.o \
		$(B)/client/linux_qgl.o \
		$(B)/client/linux_glimp.o \
		$(B)/client/linux_joystick.o \
		$(B)/client/linux_snd.o \
		$(B)/client/snd_mixa.o \
		$(B)/client/matha.o \

	Q3POBJ_SMP=\
		$(B)/client/linux_common.o \
		$(B)/client/linux_qgl.o \
		$(B)/client/linux_glimp_smp.o \
		$(B)/client/linux_joystick.o \
		$(B)/client/linux_snd.o \
		$(B)/client/snd_mixa.o \
		$(B)/client/matha.o

    ifeq ($(ARCH),i386)
		Q3POBJ += $(B)/client/ftol.o $(B)/client/snapvector.o
		Q3POBJ_SMP += $(B)/client/ftol.o $(B)/client/snapvector.o
    endif

endif
endif #Linux
endif #FreeBSD
endif #IRIX

$(B)/$(PLATFORM)quake3 : $(Q3OBJ) $(Q3POBJ)
	$(CC)  -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) 
# TTimo: splines code requires C++ linking, but splines have not been officially included in the codebase
#	$(CXX)  -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS) 

$(B)/$(PLATFORM)quake3-smp : $(Q3OBJ) $(Q3POBJ_SMP)
	$(CC)  -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(GLLDFLAGS) \
		$(THREAD_LDFLAGS) $(LDFLAGS) 

$(B)/client/cl_cgame.o : $(CDIR)/cl_cgame.c; $(DO_CC)   
$(B)/client/cl_cin.o : $(CDIR)/cl_cin.c; $(DO_CC)       
$(B)/client/cl_console.o : $(CDIR)/cl_console.c; $(DO_CC)  
$(B)/client/cl_input.o : $(CDIR)/cl_input.c; $(DO_CC)   
$(B)/client/cl_keys.o : $(CDIR)/cl_keys.c; $(DO_CC)     
$(B)/client/cl_main.o : $(CDIR)/cl_main.c; $(DO_CC)     
$(B)/client/cl_net_chan.o : $(CDIR)/cl_net_chan.c; $(DO_CC)  
$(B)/client/cl_parse.o : $(CDIR)/cl_parse.c; $(DO_CC)   
$(B)/client/cl_scrn.o : $(CDIR)/cl_scrn.c; $(DO_CC)    
$(B)/client/cl_ui.o : $(CDIR)/cl_ui.c; $(DO_CC)         
$(B)/client/snd_adpcm.o : $(CDIR)/snd_adpcm.c; $(DO_CC)   
$(B)/client/snd_dma.o : $(CDIR)/snd_dma.c; $(DO_CC)       
$(B)/client/snd_mem.o : $(CDIR)/snd_mem.c; $(DO_CC)        
$(B)/client/snd_mix.o : $(CDIR)/snd_mix.c; $(DO_CC)       
$(B)/client/snd_wavelet.o : $(CDIR)/snd_wavelet.c; $(DO_CC)     
$(B)/client/sv_bot.o : $(SDIR)/sv_bot.c; $(DO_CC)        
$(B)/client/sv_client.o : $(SDIR)/sv_client.c; $(DO_CC)     
$(B)/client/sv_ccmds.o : $(SDIR)/sv_ccmds.c; $(DO_CC)       
$(B)/client/sv_game.o : $(SDIR)/sv_game.c; $(DO_CC)        
$(B)/client/sv_init.o : $(SDIR)/sv_init.c; $(DO_CC)        
$(B)/client/sv_main.o : $(SDIR)/sv_main.c; $(DO_CC)        
$(B)/client/sv_net_chan.o : $(SDIR)/sv_net_chan.c; $(DO_CC)     
$(B)/client/sv_snapshot.o : $(SDIR)/sv_snapshot.c; $(DO_CC)      
$(B)/client/sv_world.o : $(SDIR)/sv_world.c; $(DO_CC)         
$(B)/client/cm_trace.o : $(CMDIR)/cm_trace.c; $(DO_CC)       
$(B)/client/cm_load.o : $(CMDIR)/cm_load.c; $(DO_CC)        
$(B)/client/cm_test.o : $(CMDIR)/cm_test.c; $(DO_CC)        
$(B)/client/cm_patch.o : $(CMDIR)/cm_patch.c; $(DO_CC)       
$(B)/client/cm_polylib.o : $(CMDIR)/cm_polylib.c; $(DO_CC)     
$(B)/client/cmd.o : $(CMDIR)/cmd.c; $(DO_CC)                   
$(B)/client/common.o : $(CMDIR)/common.c; $(DO_CC)               
$(B)/client/cvar.o : $(CMDIR)/cvar.c; $(DO_CC)                
$(B)/client/files.o : $(CMDIR)/files.c; $(DO_CC)              
$(B)/client/md4.o : $(CMDIR)/md4.c; $(DO_CC)                   
$(B)/client/msg.o : $(CMDIR)/msg.c; $(DO_CC)                    
$(B)/client/net_chan.o : $(CMDIR)/net_chan.c; $(DO_CC)
$(B)/client/huffman.o : $(CMDIR)/huffman.c; $(DO_CC)
$(B)/client/q_shared.o : $(GDIR)/q_shared.c; $(DO_CC)         
$(B)/client/q_math.o : $(GDIR)/q_math.c; $(DO_CC)               

$(B)/client/be_aas_bspq3.o : $(BLIBDIR)/be_aas_bspq3.c; $(DO_BOT_CC) 
$(B)/client/be_aas_cluster.o : $(BLIBDIR)/be_aas_cluster.c; $(DO_BOT_CC) 
$(B)/client/be_aas_debug.o : $(BLIBDIR)/be_aas_debug.c; $(DO_BOT_CC) 
$(B)/client/be_aas_entity.o : $(BLIBDIR)/be_aas_entity.c; $(DO_BOT_CC) 
$(B)/client/be_aas_file.o : $(BLIBDIR)/be_aas_file.c; $(DO_BOT_CC) 
$(B)/client/be_aas_main.o : $(BLIBDIR)/be_aas_main.c; $(DO_BOT_CC) 
$(B)/client/be_aas_move.o : $(BLIBDIR)/be_aas_move.c; $(DO_BOT_CC) 
$(B)/client/be_aas_optimize.o : $(BLIBDIR)/be_aas_optimize.c; $(DO_BOT_CC) 
$(B)/client/be_aas_reach.o : $(BLIBDIR)/be_aas_reach.c; $(DO_BOT_CC) 
$(B)/client/be_aas_route.o : $(BLIBDIR)/be_aas_route.c; $(DO_BOT_CC) 
$(B)/client/be_aas_routealt.o : $(BLIBDIR)/be_aas_routealt.c; $(DO_BOT_CC) 
$(B)/client/be_aas_sample.o : $(BLIBDIR)/be_aas_sample.c; $(DO_BOT_CC) 
$(B)/client/be_ai_char.o : $(BLIBDIR)/be_ai_char.c; $(DO_BOT_CC) 
$(B)/client/be_ai_chat.o : $(BLIBDIR)/be_ai_chat.c; $(DO_BOT_CC) 
$(B)/client/be_ai_gen.o : $(BLIBDIR)/be_ai_gen.c; $(DO_BOT_CC) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -