initial
This commit is contained in:
296
utils/vpc/Makefile
Normal file
296
utils/vpc/Makefile
Normal file
@@ -0,0 +1,296 @@
|
||||
# Make command to use for dependencies
|
||||
SHELL=/bin/sh
|
||||
RM:=rm
|
||||
MKDIR:=mkdir
|
||||
OS:=$(shell uname)
|
||||
EXE_POSTFIX:=""
|
||||
|
||||
|
||||
# ---------------------------------------------------------------- #
|
||||
# Figure out if we're building in the Steam tree or not.
|
||||
# ---------------------------------------------------------------- #
|
||||
|
||||
SRCROOT:=../..
|
||||
-include $(SRCROOT)/devtools/steam_def.mak
|
||||
|
||||
|
||||
# ---------------------------------------------------------------- #
|
||||
# Set paths to gcc.
|
||||
# ---------------------------------------------------------------- #
|
||||
|
||||
CC:=gcc -m32
|
||||
CXX:=g++ -m32
|
||||
|
||||
ifeq ($(OS),Darwin)
|
||||
CC:=clang -m32
|
||||
CXX:=clang++ -m32
|
||||
EXE_POSTFIX:=_osx
|
||||
endif
|
||||
|
||||
ifeq ($(OS),Linux)
|
||||
CC=/valve/bin/gcc -m32
|
||||
CXX=/valve/bin/g++ -m32
|
||||
EXE_POSTFIX=_linux
|
||||
endif
|
||||
|
||||
ifneq ($(CC_OVERRIDE),)
|
||||
CC:=$(CC_OVERRIDE)
|
||||
CXX:=$(CPP_OVERRIDE)
|
||||
endif
|
||||
|
||||
|
||||
# ---------------------------------------------------------------- #
|
||||
# Lists of files.
|
||||
# ---------------------------------------------------------------- #
|
||||
|
||||
VPC_SRC:= \
|
||||
exprsimplifier.cpp \
|
||||
groupscript.cpp \
|
||||
conditionals.cpp \
|
||||
macros.cpp \
|
||||
projectscript.cpp \
|
||||
scriptsource.cpp \
|
||||
baseprojectdatacollector.cpp \
|
||||
configuration.cpp \
|
||||
dependencies.cpp \
|
||||
main.cpp \
|
||||
projectgenerator_makefile.cpp \
|
||||
projectgenerator_xcode.cpp \
|
||||
solutiongenerator_makefile.cpp \
|
||||
solutiongenerator_xcode.cpp \
|
||||
sys_utils.cpp \
|
||||
../vpccrccheck/crccheck_shared.cpp
|
||||
|
||||
TIER0_SRC:= \
|
||||
../../tier0/assert_dialog.cpp \
|
||||
../../tier0/cpu_posix.cpp \
|
||||
../../tier0/cpu.cpp \
|
||||
../../tier0/dbg.cpp \
|
||||
../../tier0/fasttimer.cpp \
|
||||
../../tier0/mem.cpp \
|
||||
../../tier0/mem_helpers.cpp \
|
||||
../../tier0/memdbg.cpp \
|
||||
../../tier0/memstd.cpp \
|
||||
../../tier0/memvalidate.cpp \
|
||||
../../tier0/minidump.cpp \
|
||||
../../tier0/pch_tier0.cpp \
|
||||
../../tier0/threadtools.cpp \
|
||||
../../tier0/valobject.cpp \
|
||||
../../tier0/vprof.cpp
|
||||
|
||||
|
||||
TIER1_SRC:= \
|
||||
../../tier1/keyvalues.cpp \
|
||||
../../tier1/checksum_crc.cpp \
|
||||
../../tier1/checksum_md5.cpp \
|
||||
../../tier1/convar.cpp \
|
||||
../../tier1/generichash.cpp \
|
||||
../../tier1/interface.cpp \
|
||||
../../tier1/mempool.cpp \
|
||||
../../tier1/memstack.cpp \
|
||||
../../tier1/stringpool.cpp \
|
||||
../../tier1/utlbuffer.cpp \
|
||||
../../tier1/utlsymbol.cpp
|
||||
|
||||
VSTDLIB_SRC:= \
|
||||
../../vstdlib/cvar.cpp \
|
||||
../../vstdlib/vstrtools.cpp \
|
||||
../../vstdlib/random.cpp
|
||||
|
||||
|
||||
ifeq "$(STEAM_BRANCH)" "1"
|
||||
TIER0_SRC+= \
|
||||
../../tier0/tier0.cpp \
|
||||
../../tier0/platform_posix.cpp \
|
||||
../../tier0/validator.cpp \
|
||||
../../tier0/thread.cpp \
|
||||
../../tier0/pmelib.cpp \
|
||||
../../tier0/pme_posix.cpp \
|
||||
../../tier0/testthread.cpp \
|
||||
../../tier0/cpu_posix.cpp \
|
||||
../../tier0/memblockhdr.cpp
|
||||
|
||||
VSTDLIB_SRC+= \
|
||||
../../vstdlib/keyvaluessystem.cpp \
|
||||
../../vstdlib/qsort_s.cpp \
|
||||
../../vstdlib/strtools.cpp \
|
||||
../../vstdlib/stringnormalize.cpp \
|
||||
../../vstdlib/splitstring.cpp \
|
||||
../../vstdlib/commandline.cpp
|
||||
|
||||
INTERFACES_SRC=
|
||||
|
||||
BINLAUNCH_SRC =
|
||||
|
||||
else
|
||||
|
||||
TIER0_SRC+= \
|
||||
../../tier0/platform_posix.cpp \
|
||||
../../tier0/pme_posix.cpp \
|
||||
../../tier0/commandline.cpp \
|
||||
../../tier0/win32consoleio.cpp \
|
||||
../../tier0/logging.cpp \
|
||||
../../tier0/tier0_strtools.cpp
|
||||
|
||||
TIER1_SRC+= \
|
||||
../../tier1/utlstring.cpp \
|
||||
../../tier1/tier1.cpp \
|
||||
../../tier1/characterset.cpp \
|
||||
../../tier1/splitstring.cpp \
|
||||
../../tier1/strtools.cpp \
|
||||
../../tier1/exprevaluator.cpp \
|
||||
|
||||
VSTDLIB_SRC+= \
|
||||
../../vstdlib/keyvaluessystem.cpp
|
||||
|
||||
INTERFACES_SRC= \
|
||||
../../interfaces/interfaces.cpp
|
||||
|
||||
BINLAUNCH_SRC = \
|
||||
|
||||
endif
|
||||
|
||||
|
||||
SRC:=$(VPC_SRC) $(TIER0_SRC) $(TIER1_SRC) $(VSTDLIB_SRC) $(INTERFACES_SRC) $(BINLAUNCH_SRC)
|
||||
|
||||
|
||||
# -----Begin user-editable area-----
|
||||
|
||||
# -----End user-editable area-----
|
||||
|
||||
# If no configuration is specified, "Debug" will be used
|
||||
ifndef "CFG"
|
||||
CFG:=Release
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# Configuration: Debug
|
||||
#
|
||||
ifeq "$(CFG)" "Debug"
|
||||
|
||||
OUTDIR:=obj/$(OS)/debug
|
||||
CONFIG_DEPENDENT_FLAGS:=-O0
|
||||
ifeq ($(OS),Linux)
|
||||
CONFIG_DEPENDENT_FLAGS+=-g3 -ggdb -fpermissive
|
||||
endif
|
||||
else
|
||||
|
||||
OUTDIR:=obj/$(OS)/release
|
||||
CONFIG_DEPENDENT_FLAGS:=-O3
|
||||
ifeq ($(OS),Linux)
|
||||
CONFIG_DEPENDENT_FLAGS+=-g3 -ggdb -fpermissive
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
OBJS:=$(addprefix $(OUTDIR)/, $(subst ../../, ,$(SRC:.cpp=.o)))
|
||||
|
||||
|
||||
OUTFILE:=$(OUTDIR)/vpc
|
||||
CFG_INC:=-I../../public -I../../common -I../../public/tier0 \
|
||||
-I../../public/tier1 -I../../public/tier2 -I../../public/vstdlib
|
||||
|
||||
|
||||
CFLAGS=-D_POSIX -DPOSIX -DGNUC -DNDEBUG $(CONFIG_DEPENDENT_FLAGS) -msse -mmmx -pipe -w -fPIC $(CFG_INC)
|
||||
ifeq "$(STEAM_BRANCH)" "1"
|
||||
CFLAGS+= -DSTEAM
|
||||
endif
|
||||
|
||||
|
||||
ifeq "$(OS)" "Darwin"
|
||||
CFLAGS+=-I/usr/include/malloc
|
||||
CFLAGS+= -DOSX -D_OSX
|
||||
CFLAGS+= -arch i386 -fasm-blocks
|
||||
endif
|
||||
|
||||
ifeq "$(OS)" "Linux"
|
||||
CFLAGS+= -DPLATFORM_LINUX -D_LINUX -DLINUX
|
||||
endif
|
||||
|
||||
ifeq ($(CYGWIN),1)
|
||||
CFLAGS+=-D_CYGWIN -DCYGWIN -D_CYGWIN_WINDOWS_TARGET
|
||||
endif
|
||||
|
||||
CFLAGS+= -DCOMPILER_GCC
|
||||
|
||||
# the sed magic here adds the dependency file to the list of things that depend on the computed dependency
|
||||
# set, so if any of them change, the dependencies are re-made
|
||||
MAKEDEPEND=$(CXX) -M -MT $@ -MM $(CFLAGS) $< | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $(@:.o=.d)
|
||||
COMPILE=$(CXX) -c $(CFLAGS) -o $@ $<
|
||||
LINK=$(CXX) $(CONFIG_DEPENDENT_FLAGS) -ldl -lpthread -o "$(OUTFILE)" $(OBJS)
|
||||
|
||||
ifeq "$(OS)" "Darwin"
|
||||
LINK+=-liconv -framework Foundation
|
||||
endif
|
||||
|
||||
ifeq "$(OS)" "Darwin"
|
||||
LINK+= -arch i386
|
||||
endif
|
||||
|
||||
|
||||
# Build rules
|
||||
all: $(OUTFILE) ../../devtools/bin/vpc$(EXE_POSTFIX)
|
||||
|
||||
../../devtools/bin/vpc$(EXE_POSTFIX) : $(OUTFILE)
|
||||
cp "$(OUTFILE)" ../../devtools/bin/vpc$(EXE_POSTFIX)
|
||||
|
||||
$(OUTFILE): Makefile $(OBJS)
|
||||
$(LINK)
|
||||
|
||||
|
||||
# Rebuild this project
|
||||
rebuild: cleanall all
|
||||
|
||||
# Clean this project
|
||||
clean:
|
||||
$(RM) -f $(OUTFILE)
|
||||
$(RM) -f $(OBJS)
|
||||
$(RM) -f $(OBJS:.o=.d)
|
||||
$(RM) -f ../../devtools/bin/vpc$(EXE_POSTFIX)
|
||||
|
||||
# Clean this project and all dependencies
|
||||
cleanall: clean
|
||||
|
||||
# magic rules - tread with caution
|
||||
-include $(OBJS:.o=.d)
|
||||
|
||||
# Pattern rules
|
||||
$(OUTDIR)/%.o : %.cpp
|
||||
-$(MKDIR) -p $(@D)
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
$(OUTDIR)/tier0/%.o : ../../tier0/%.cpp
|
||||
-$(MKDIR) -p $(@D)
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
$(OUTDIR)/tier1/%.o : ../../tier1/%.cpp
|
||||
-$(MKDIR) -p $(@D)
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
$(OUTDIR)/vstdlib/%.o : ../../vstdlib/%.cpp
|
||||
-$(MKDIR) -p $(@D)
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
$(OUTDIR)/interfaces/%.o : ../../interfaces/%.cpp
|
||||
if [ ! -d $(@D) ]; then $(MKDIR) $(@D); fi
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
$(OUTDIR)/utils/binlaunch/%.o : ../binlaunch/%.cpp
|
||||
if [ ! -d $(@D) ]; then $(MKDIR) $(@D); fi
|
||||
@$(MAKEDEPEND);
|
||||
$(COMPILE)
|
||||
|
||||
|
||||
# the tags file) seems like more work than it's worth. feel free to fix that up
|
||||
# if it bugs you.
|
||||
TAGS:
|
||||
@find . -name '*.cpp' -print0 | xargs -0 etags --declarations --ignore-indentation
|
||||
@find . -name '*.h' -print0 | xargs -0 etags --language=c++ --declarations --ignore-indentation --append
|
||||
@find . -name '*.c' -print0 | xargs -0 etags --declarations --ignore-indentation --append
|
||||
|
||||
Reference in New Issue
Block a user