150 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| #
 | |
| # Half-Life Standard SDK 2.3 mp_i386.so Makefile for i386 Linux
 | |
| #
 | |
| # October 2002 by Leon Hartwig (hartwig@valvesoftware.com)
 | |
| #
 | |
| 
 | |
| DLLNAME=mp
 | |
| 
 | |
| ARCH=i386
 | |
| 
 | |
| #make sure this is the correct compiler for your system
 | |
| CC=gcc
 | |
| 
 | |
| DLL_SRCDIR=.
 | |
| ENGINE_SRCDIR=../engine
 | |
| COMMON_SRCDIR=../common
 | |
| WPN_SHARED_SRCDIR=./wpn_shared
 | |
| PM_SHARED_SRCDIR=../pm_shared
 | |
| GAME_SHARED_SRCDIR=../game_shared
 | |
| 
 | |
| DLL_OBJDIR=$(DLL_SRCDIR)/obj
 | |
| WPN_SHARED_OBJDIR=$(WPN_SHARED_SRCDIR)/obj
 | |
| PM_SHARED_OBJDIR=$(PM_SHARED_SRCDIR)/obj
 | |
| GAME_SHARED_OBJDIR=$(GAME_SHARED_SRCDIR)/obj
 | |
| 
 | |
| BASE_CFLAGS=	-Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
 | |
| 		-DCLIENT_WEAPONS
 | |
| 
 | |
| #safe optimization
 | |
| CFLAGS=$(BASE_CFLAGS) -Wall -Wno-non-virtual-dtor -Wno-invalid-offsetof -Werror -m486 -O1
 | |
| C_FLAGS=$(BASE_CFLAGS) -Wall -Werror -m486 -O1
 | |
| 
 | |
| #full optimization
 | |
| #CFLAGS=$(BASE_CFLAGS) -Wall -Wno-non-virtual-dtor -Wno-invalid-offsetof -Werror -O1 -m486 -ffast-math -funroll-loops \
 | |
| 	-fomit-frame-pointer -fexpensive-optimizations \
 | |
| 	-malign-loops=2 -malign-jumps=2 -malign-functions=2
 | |
| 
 | |
| #use these when debugging 
 | |
| #CFLAGS=$(BASE_CFLAGS) -g
 | |
| 
 | |
| INCLUDEDIRS=-I. -I$(ENGINE_SRCDIR) -I$(COMMON_SRCDIR) -I$(PM_SHARED_SRCDIR) -I$(GAME_SHARED_SRCDIR)
 | |
| 
 | |
| LDFLAGS=
 | |
| 
 | |
| SHLIBEXT=so
 | |
| SHLIBCFLAGS=-fPIC
 | |
| SHLIBLDFLAGS=-shared
 | |
| 
 | |
| DO_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) $(INCLUDEDIRS) -o $@ -c $<
 | |
| DO_C=$(CC) $(C_FLAGS) $(SHLIBCFLAGS) $(INCLUDEDIRS) -o $@ -c $<
 | |
| 
 | |
| #############################################################################
 | |
| # SETUP AND BUILD
 | |
| # GAME
 | |
| #############################################################################
 | |
| 
 | |
| $(DLL_OBJDIR)/%.o: $(DLL_SRCDIR)/%.cpp
 | |
| 	$(DO_CC)
 | |
| 
 | |
| $(WPN_SHARED_OBJDIR)/%.o: $(WPN_SHARED_SRCDIR)/%.cpp
 | |
| 	$(DO_CC)
 | |
| 
 | |
| $(GAME_SHARED_OBJDIR)/%.o: $(GAME_SHARED_SRCDIR)/%.cpp
 | |
| 	$(DO_CC)
 | |
| 
 | |
| $(PM_SHARED_OBJDIR)/%.o: $(PM_SHARED_SRCDIR)/%.c
 | |
| 	$(DO_C)
 | |
| 
 | |
| OBJ = \
 | |
| 	$(DLL_OBJDIR)/airtank.o \
 | |
| 	$(DLL_OBJDIR)/animating.o \
 | |
| 	$(DLL_OBJDIR)/animation.o \
 | |
| 	$(DLL_OBJDIR)/bmodels.o \
 | |
| 	$(DLL_OBJDIR)/buttons.o \
 | |
| 	$(DLL_OBJDIR)/cbase.o \
 | |
| 	$(DLL_OBJDIR)/client.o \
 | |
| 	$(DLL_OBJDIR)/combat.o \
 | |
| 	$(DLL_OBJDIR)/crossbow.o \
 | |
| 	$(DLL_OBJDIR)/crowbar.o \
 | |
| 	$(DLL_OBJDIR)/doors.o \
 | |
| 	$(DLL_OBJDIR)/effects.o \
 | |
| 	$(DLL_OBJDIR)/egon.o \
 | |
| 	$(DLL_OBJDIR)/explode.o \
 | |
| 	$(DLL_OBJDIR)/func_break.o \
 | |
| 	$(DLL_OBJDIR)/func_tank.o \
 | |
| 	$(DLL_OBJDIR)/game.o \
 | |
| 	$(DLL_OBJDIR)/gamerules.o \
 | |
| 	$(DLL_OBJDIR)/gauss.o \
 | |
| 	$(DLL_OBJDIR)/ggrenade.o \
 | |
| 	$(DLL_OBJDIR)/globals.o \
 | |
| 	$(DLL_OBJDIR)/h_ai.o \
 | |
| 	$(DLL_OBJDIR)/h_battery.o \
 | |
| 	$(DLL_OBJDIR)/h_cycler.o \
 | |
| 	$(DLL_OBJDIR)/h_export.o \
 | |
| 	$(DLL_OBJDIR)/handgrenade.o \
 | |
| 	$(DLL_OBJDIR)/healthkit.o \
 | |
| 	$(DLL_OBJDIR)/hornet.o \
 | |
| 	$(DLL_OBJDIR)/hornetgun.o \
 | |
| 	$(DLL_OBJDIR)/items.o \
 | |
| 	$(DLL_OBJDIR)/lights.o \
 | |
| 	$(DLL_OBJDIR)/maprules.o \
 | |
| 	$(DLL_OBJDIR)/mortar.o \
 | |
| 	$(DLL_OBJDIR)/mp5.o \
 | |
| 	$(DLL_OBJDIR)/mpstubb.o \
 | |
| 	$(DLL_OBJDIR)/multiplay_gamerules.o \
 | |
| 	$(DLL_OBJDIR)/pathcorner.o \
 | |
| 	$(DLL_OBJDIR)/plane.o \
 | |
| 	$(DLL_OBJDIR)/plats.o \
 | |
| 	$(DLL_OBJDIR)/player.o \
 | |
| 	$(DLL_OBJDIR)/python.o \
 | |
| 	$(DLL_OBJDIR)/rpg.o \
 | |
| 	$(DLL_OBJDIR)/satchel.o \
 | |
| 	$(DLL_OBJDIR)/shotgun.o \
 | |
| 	$(DLL_OBJDIR)/singleplay_gamerules.o \
 | |
| 	$(DLL_OBJDIR)/skill.o \
 | |
| 	$(DLL_OBJDIR)/sound.o \
 | |
| 	$(DLL_OBJDIR)/soundent.o \
 | |
| 	$(DLL_OBJDIR)/spectator.o \
 | |
| 	$(DLL_OBJDIR)/squeakgrenade.o \
 | |
| 	$(DLL_OBJDIR)/subs.o \
 | |
| 	$(DLL_OBJDIR)/teamplay_gamerules.o \
 | |
| 	$(DLL_OBJDIR)/triggers.o \
 | |
| 	$(DLL_OBJDIR)/tripmine.o \
 | |
| 	$(DLL_OBJDIR)/util.o \
 | |
| 	$(DLL_OBJDIR)/weapons.o \
 | |
| 	$(DLL_OBJDIR)/world.o \
 | |
| 	$(DLL_OBJDIR)/xen.o \
 | |
| 	$(WPN_SHARED_OBJDIR)/hl_wpn_glock.o \
 | |
| 	$(GAME_SHARED_OBJDIR)/voice_gamemgr.o \
 | |
| 	$(PM_SHARED_OBJDIR)/pm_debug.o \
 | |
| 	$(PM_SHARED_OBJDIR)/pm_math.o \
 | |
| 	$(PM_SHARED_OBJDIR)/pm_shared.o
 | |
| 
 | |
| $(DLLNAME)_$(ARCH).$(SHLIBEXT) : neat $(OBJ)
 | |
| 	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) $(LDFLAGS) -o $@ $(OBJ)
 | |
| 
 | |
| neat:
 | |
| 	-mkdir -p $(DLL_OBJDIR)
 | |
| 	-mkdir -p $(WPN_SHARED_OBJDIR)
 | |
| 	-mkdir -p $(GAME_SHARED_OBJDIR)
 | |
| 	-mkdir -p $(PM_SHARED_OBJDIR)
 | |
| clean:
 | |
| 	-rm -f $(OBJ)
 | |
| 	-rm -f $(DLLNAME)_$(ARCH).$(SHLIBEXT)
 | |
| spotless: clean
 | |
| 	-rm -rf $(DLL_OBJDIR)
 | |
| 	-rm -rf $(WPN_SHARED_OBJDIR)
 | |
| 	-rm -rf $(GAME_SHARED_OBJDIR)
 | |
| 	-rm -rf $(PM_SHARED_OBJDIR)
 |