nuclide/Makefile
Marco Cawthorne d41b90c081 Base: Give some love to base/
VGUI-Menu: friendList, chat backend, textview class proto
SurfaceProps: Flesh impacts recognition
PropData: BreakModels now use a bodyque to limit possible physics overhead
PMove: falldamage, liquids can now be configured via external decl
NSWeapon: added alternative punchangle based on springs, 'punchSpring X Y Z' in decl
API: Team class management APIS
NSPhysicsEntity: Optimised, optimised, optimised. New cvar: phys_lowspec. Scraping, impact effects etc have been added.
More polish everywhere else
2025-01-02 18:53:55 -08:00

430 lines
20 KiB
Makefile

#
# Nuclide GNUMakefile
#
# Apr 2024 by Marco Cawthorne <marco@vera-visions.com>
# Last updated: 2024/11/28
#
# set `GAME` when issuing make. E.g. `make GAME=wastes`
GAME=base
# affects the output binary name (e.g. NAME=TheWastes > TheWastes_x64.exe) for dev builds
NAME=`./Tools/get-name.sh $(GAME)`
GAME_ARCH=x64
GAME_EXT=
GAME_BINARY=$(NAME)_$(GAME_ARCH)$(GAME_EXT)
GAMEDS_BINARY=$(NAME)DS_$(GAME_ARCH)$(GAME_EXT)
ENGINE_URL=https://www.github.com/fte-team/fteqw
# FTE specific builds
ENGINE_ARCH=amd64
ENGINE_CLBUILD=m-dbg
ENGINE_SVBUILD=sv-dbg
ENGINE_BINARY=./ThirdParty/fteqw/engine/debug/$(GAME)
ENGINE_DEDICATED=./ThirdParty/fteqw/engine/debug/$(GAME)-sv
ENGINE_BINARY_LIN32=./ThirdParty/fteqw/engine/release/$(GAME)32
ENGINE_BINARY_LIN64=./ThirdParty/fteqw/engine/release/$(GAME)64
ENGINE_BINARY_WIN32=./ThirdParty/fteqw/engine/release/$(GAME).exe
ENGINE_BINARY_WIN64=./ThirdParty/fteqw/engine/release/$(GAME)64.exe
ENGINE_DS_LIN32=./ThirdParty/fteqw/engine/release/$(GAME)-sv32
ENGINE_DS_LIN64=./ThirdParty/fteqw/engine/release/$(GAME)-sv64
ENGINE_DS_WIN32=./ThirdParty/fteqw/engine/release/$(GAME)sv.exe
ENGINE_DS_WIN64=./ThirdParty/fteqw/engine/release/$(GAME)sv64.exe
NUCLIDE_DIR=`pwd`
QCC_DIR=$(NUCLIDE_DIR)
BUILD_DIR=$(NUCLIDE_DIR)/build
EDITOR=radiant
NATIVE_PLUGINS=`head -n 1 ../../../$(GAME)/PLUGINS`
define CMDSTR
#
endef
define ARGSTR
\$
endef
RADIANT_GAME="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/games/$(GAME).game"
RADIANT_XLINK="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game/game.xlink"
RADIANT_SYNAPSE="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game/synapse.config"
RADIANT_PROJECT="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts/default_project.proj"
RADIANT_TEXTURES="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/textures"
ENTITY_DEF="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts/entities.def"
RADIANT_SHADERLIST="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts/shaderlist.txt"
EDITOR_VMAP="$(ARGSTR)TEMPLATEenginepath/vmap"
EDITOR_ENGINEPATH="$(ARGSTR)TEMPLATEenginepath"
EDITOR_BASEPATH="$(ARGSTR)TEMPLATEbasedir"
EDITOR_HOMEPATH="$(ARGSTR)TEMPLATEuserhomepath"
help:
@printf "#####################\nNuclide Makefile Help\n#####################\n\nmain targets:\n"
@printf "\tgame [GAME=base]\n"
@printf "\t\talternatively: client, server, menu [GAME=base]\n"
@printf "\tedef [GAME=base]\n"
@printf "\tengine [GAME=base] [NAME=MyGame]\n"
@printf "\tdedicated [GAME=base]\n"
@printf "\tplugins [GAME=base] [NATIVE_PLUGINS=\"ode ffmpeg\"]\n"
@printf "\ttools\n"
@printf "\teditor\n"
@printf "\tdocs\n"
@printf "\tdist [GAME=base]\n"
@printf "\tclean[-game,engine,tools] [GAME=base]\n"
@printf "\tupdate [GAME=base]\n"
@printf "\nthird-party targets:\n"
@printf "\tfteqw, fteqw-sv, fteqw-plugins\n"
@printf "\tradiant, netradiant-custom\n"
all: game engine dedicated plugins
game: fteqcc
-cp src/cvar_defaults.cfg "$(GAME)/zpak001.pk3dir/default_cvar.cfg"
cd "$(GAME)/src/" && $(MAKE) QCC=$(QCC_DIR)/../../fteqcc
client: fteqcc
cd "$(GAME)/src/client/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc
server: fteqcc
cd "$(GAME)/src/server/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc
rules: fteqcc
cd "$(GAME)/src/rules/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc
menu: fteqcc
cd "$(GAME)/src/menu/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc
mapc: fteqcc
cd "$(GAME)/src/maps/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc
# will build a gamepack for gtkradiant
radiant-game: radiant edef
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>" > "$(RADIANT_GAME)"
echo "<game" >> "$(RADIANT_GAME)"
echo " name=\"$(NAME)\"" >> "$(RADIANT_GAME)"
echo " enginepath_linux=\"$(NUCLIDE_DIR)\"" >> "$(RADIANT_GAME)"
echo " gametools_linux=\"$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game\"" >> "$(RADIANT_GAME)"
echo " prefix=\".$(GAME)\"" >> "$(RADIANT_GAME)"
echo " basegame=\"$(GAME)\"" >> "$(RADIANT_GAME)"
echo "/>" >> "$(RADIANT_GAME)"
mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game"
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>" > "$(RADIANT_XLINK)"
echo "<!-- Links for the $(NAME) game pack -->" >> "$(RADIANT_XLINK)"
echo "<links>" >> "$(RADIANT_XLINK)"
echo "<item name=\"Nuclide Developer Reference\" url=\"http://developer.vera-visions.com/\"/>" >> "$(RADIANT_XLINK)"
echo "<item name=\"Vera Visions\" url=\"http://www.vera-visions.com/\"/>" >> "$(RADIANT_XLINK)"
echo "</links>" >> "$(RADIANT_XLINK)"
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?><synapseconfig><client name=\"core\"><api name=\"image\">" > "$(RADIANT_SYNAPSE)"
echo "png jpg tga" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
echo "pk3" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"map\">" >> "$(RADIANT_SYNAPSE)"
echo "mapq3" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"eclass\">" >> "$(RADIANT_SYNAPSE)"
echo "def" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"surfdialog\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client><client name=\"image\"><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
echo "pk3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client><client name=\"shaders\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
echo "pk3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client><client name=\"map\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client><client name=\"xmap\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client><client name=\"model\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
echo "quake3" >> "$(RADIANT_SYNAPSE)"
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
echo "pk3" >> "$(RADIANT_SYNAPSE)"
echo "</api></client></synapseconfig>" >> "$(RADIANT_SYNAPSE)"
mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts"
cp "$(GAME)/scripts/entities.def" "$(ENTITY_DEF)"
echo "<?xml version=\"1.0\"?>" > "$(RADIANT_PROJECT)"
echo "<!DOCTYPE project SYSTEM \"dtds/project.dtd\">" >> "$(RADIANT_PROJECT)"
echo "<project>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"version\" value=\"2\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"template_version\" value=\"8\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"basepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"rshcmd\" value=\"\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"remotebasepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"entitypath\" value=\"$(ARGSTR)TEMPLATEtoolspath$(EDITOR_BASEPATH)/scripts/entities.def\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"texturepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/textures/\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"autosave\" value=\"$(EDITOR_HOMEPATH)$(EDITOR_BASEPATH)/maps/autosave.map\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"mapspath\" value=\"$(EDITOR_HOMEPATH)$(EDITOR_BASEPATH)/maps/\"/>" >> "$(RADIANT_PROJECT)"
echo "<key name=\"bsp_VMAP: (Fast Fullbright)\" value=\"! &quot;$(EDITOR_VMAP)&quot; -v $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) &amp;&amp; ! &quot;$(EDITOR_VMAP)&quot; $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -vis -saveprt$(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
echo "<key name=\"bsp_VMAP: (Fast Light)\" value=\"! &quot;$(EDITOR_VMAP)&quot; -v $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) &amp;&amp; ! &quot;$(EDITOR_VMAP)&quot; $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -vis -saveprt $(ARGSTR) &amp;&amp; ! &quot;$(EDITOR_VMAP)&quot; $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -light -custinfoparms -v -samplesize 8 -fast -threads 4 -samples 4 -shade -shadeangle 60 -patchshadows $(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
echo "<key name=\"bsp_VMAP: (Full)\" value=\"! &quot;$(EDITOR_VMAP)&quot; -v $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) &amp;&amp; ! &quot;$(EDITOR_VMAP)&quot; $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -vis -saveprt $(ARGSTR) &amp;&amp; ! &quot;$(EDITOR_VMAP)&quot; $(CMDSTR) -game $(GAME) -fs_basepath &quot;$(EDITOR_ENGINEPATH)&quot; -light -custinfoparms -samplesize 8 -fast -threads 4 -samples 4 -shade -shadeangle 60 -patchshadows $(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
echo "</project>" >> "$(RADIANT_PROJECT)"
echo "" > "$(RADIANT_SHADERLIST)"
mkdir -p "$(RADIANT_TEXTURES)/."
rsync -rva "$(NUCLIDE_DIR)/Tools/textures/." "$(RADIANT_TEXTURES)/."
mkdir -p "$(HOME)/.$(GAME)/$(GAME)/scripts"
rsync -rva "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/." "$(HOME)/.$(GAME)/$(GAME)/."
rsync -rva "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/." "./$(GAME)/."
edef:
Tools/make_mapdef.sh $(GAME)
maps:
Tools/make_maps.sh $(GAME)
textures:
Tools/make_textures.sh $(GAME)
$(GAME)/maps/%.bsp:
Tools/make_map.sh $(GAME) "$@"
models:
Tools/make_models.sh $(GAME)
docs:
doxygen
# devel
engine: $(ENGINE_BINARY)
dedicated: $(ENGINE_DEDICATED)
plugins: fteqw-plugins
editor: $(EDITOR)
# release
engine-win32: $(ENGINE_BINARY_WIN32)
engine-win64: $(ENGINE_BINARY_WIN64)
engine-lin32: $(ENGINE_BINARY_LIN32)
engine-lin64: $(ENGINE_BINARY_LIN64)
dedicated-win32: $(ENGINE_DS_WIN32)
dedicated-win64: $(ENGINE_DS_WIN64)
dedicated-lin32: $(ENGINE_DS_LIN32)
dedicated-lin64: $(ENGINE_DS_LIN64)
# misc
tools: fteqcc vmap vvmtool iqmtool imgtool generatebuiltinsl makevulkanblob
vmap:
cd Tools/vmap && $(MAKE)
install -m 0777 Tools/vmap/vmap vmap
vvmtool:
cd Tools/vvmtool && $(MAKE)
install -m 0777 Tools/vvmtool/vvmtool vvmtool
worldspawn:
cd Tools/worldspawn && $(MAKE)
dist: dist-pak dist-engine
dist-engine: engine-lin32 engine-lin64 engine-win32 engine-win64 dedicated-lin32 dedicated-lin64 dedicated-win32 dedicated-win64
dist-pak:
mkdir -p "$(BUILD_DIR)/$(NAME)-content/$(GAME)"
./Tools/make_dist.sh "$(GAME)" $(BUILD_DIR)/$(NAME)-content/$(GAME) > $(BUILD_DIR)/$(NAME)-content.log
-$(GAME)/post-dist.sh "$(GAME)" "$(BUILD_DIR)/$(NAME)-content"
# generate trinity .shader files from .mat within the game directory
trshaders:
Tools/make_trshaders.sh $(GAME)
# recycling center
vacuum:
-rm ./$(GAME)/csqccore.txt
-rm ./$(GAME)/ssqccore.txt
-rm ./$(GAME)/menucore.txt
-rm ./$(GAME)/condump.txt
-rm ./$(GAME)/fte.cfg
-rm ./$(GAME)/config.cfg
-rm ./$(GAME)/*.lno
-rm -rfv ./$(GAME)/csprogsvers
-rm -rfv ./$(GAME)/data
-rm -rfv ./$(GAME)/saves
clean: clean-game clean-engine clean-tools clean-dist
clean-dist:
-rm -r $(BUILD_DIR)/$(NAME)-content/
-rm -r $(BUILD_DIR)/$(NAME)-win/
-rm -r $(BUILD_DIR)/$(NAME)-linux/
clean-game:
-rm conhistory.txt crash.log fullchain.pem \
privkey.pem installed.lst $(GAME)/csprogs.dat \
$(GAME)/menu.dat $(GAME)/progs.dat $(GAME)/csprogs.lno \
$(GAME)/menu.lno $(GAME)/progs.lno $(GAME)/csqccore.txt \
$(GAME)/menucore.txt $(GAME)/ssqccore.txt fteplug_*.so
clean-engine:
cd ThirdParty/fteqw/engine && $(MAKE) clean
-rm $(NAME)_x64$(GAME_EXT) $(NAME)_x86$(GAME_EXT) $(NAME)DS_x64$(GAME_EXT) $(NAME)DS_x86$(GAME_EXT)
clean-fteqw:
cd ThirdParty/fteqw/engine && $(MAKE) clean
-rm fteqw fteqw-sv
clean-tools:
cd Tools/vmap && $(MAKE) clean
cd Tools/vvmtool && $(MAKE) clean
cd ThirdParty/fteqw/engine && $(MAKE) clean
-rm vmap vvmtool iqmtool imgtool fteqcc generatebuiltinsl makevulkanblob
debug:
gdb --args ./$(GAME_BINARY) +set sv_cheats 1 +set sv_csqcdebug 1 +set g_logLevel 3 +set g_logTimestamps 1
update:
if [ -f ./.git/config ];then git pull;fi
if [ -f $(GAME)/.git/config ];then cd $(GAME) && git pull;fi
if [ ! -d ThirdParty/fteqw ];then git clone $(ENGINE_URL) ThirdParty/fteqw;else cd ./ThirdParty/fteqw && git pull;fi
if [ ! -d Tools/vvmtool ];then git clone https://github.com/VeraVisions/vvmtool Tools/vvmtool;else cd ./Tools/vvmtool && git pull;fi
if [ ! -d Tools/vmap ];then git clone https://github.com/VeraVisions/vmap Tools/vmap;else cd ./Tools/vmap && git pull;fi
if [ ! -d Tools/worldspawn ];then git clone https://github.com/VeraVisions/worldspawn Tools/worldspawn;else cd ./Tools/worldspawn && git pull;fi
if [ ! -d ThirdParty/gtkradiant ];then git clone https://github.com/TTimo/gtkradiant ThirdParty/gtkradiant;else cd ./ThirdParty/gtkradiant && git pull;fi
if [ ! -d ThirdParty/netradiant-custom ];then git clone https://github.com/Garux/netradiant-custom ThirdParty/netradiant-custom;else cd ./ThirdParty/netradiant-custom && git pull;fi
# fte specific corner
fteqw-plugins:
cd ThirdParty/fteqw/engine && $(MAKE) plugins-dbg NATIVE_PLUGINS="$(NATIVE_PLUGINS)"
find ThirdParty/fteqw/engine/debug/ -name "fteplug_*.so" -exec mv '{}' ./ \;
fteqw-plugins-win32:
cd ThirdParty/fteqw/engine && $(MAKE) plugins-dbg NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_TARGET=win32
find ThirdParty/fteqw/engine/debug/ -name "fteplug_*.dll" -exec mv '{}' ./ \;
fteqw-plugins-win64:
cd ThirdParty/fteqw/engine && $(MAKE) plugins-dbg NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_TARGET=win64
find ThirdParty/fteqw/engine/debug/ -name "fteplug_*.dll" -exec mv '{}' ./ \;
fteqw-plugins-lin32:
cd ThirdParty/fteqw/engine && $(MAKE) plugins-dbg NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_TARGET=linux32
find ThirdParty/fteqw/engine/debug/ -name "fteplug_*.dll" -exec mv '{}' ./ \;
fteqw-plugins-lin64:
cd ThirdParty/fteqw/engine && $(MAKE) plugins-dbg NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_TARGET=linux64
find ThirdParty/fteqw/engine/debug/ -name "fteplug_*.dll" -exec mv '{}' ./ \;
$(ENGINE_BINARY):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=x86_64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) $(ENGINE_CLBUILD) FTE_CONFIG=$(GAME) ARCH=x86_64
install -m 0777 $(ENGINE_BINARY) ./$(GAME_BINARY)
$(ENGINE_BINARY_WIN32):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs FTE_TARGET=win32
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) m-rel FTE_TARGET=win32 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-win"
install -m 0777 $(ENGINE_BINARY_WIN32) $(BUILD_DIR)/$(NAME)-win/$(NAME)_x86.exe
cd ThirdParty/fteqw/engine && $(MAKE) plugins-rel NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_CONFIG=$(GAME) FTE_TARGET=win32
find ThirdParty/fteqw/engine/release/ -name "fteplug_*.dll" -exec mv '{}' $(BUILD_DIR)/$(NAME)-win/ \;
$(ENGINE_BINARY_WIN64):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs FTE_TARGET=win64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) m-rel FTE_TARGET=win64 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-win"
install -m 0777 $(ENGINE_BINARY_WIN64) $(BUILD_DIR)/$(NAME)-win/$(NAME)_x64.exe
cd ThirdParty/fteqw/engine && $(MAKE) plugins-rel NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_CONFIG=$(GAME) FTE_TARGET=win64
find ThirdParty/fteqw/engine/release/ -name "fteplug_*.dll" -exec mv '{}' $(BUILD_DIR)/$(NAME)-win/ \;
$(ENGINE_BINARY_LIN32):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=i686 FTE_TARGET=linux32
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) m-rel ARCH=i686 FTE_TARGET=linux32 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-linux"
cd ThirdParty/fteqw/engine && $(MAKE) plugins-rel NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_CONFIG=$(GAME) FTE_TARGET=linux32
find ThirdParty/fteqw/engine/release/ -name "fteplug_*.so" -exec mv '{}' $(BUILD_DIR)/$(NAME)-linux/ \;
install -m 0777 $(ENGINE_BINARY_LIN32) $(BUILD_DIR)/$(NAME)-linux/$(NAME)_x86
$(ENGINE_BINARY_LIN64):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=x86_64 FTE_TARGET=linux64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) m-rel ARCH=x86_64 FTE_TARGET=linux64 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-linux"
install -m 0777 $(ENGINE_BINARY_LIN64) $(BUILD_DIR)/$(NAME)-linux/$(NAME)_x64
cd ThirdParty/fteqw/engine && $(MAKE) plugins-rel NATIVE_PLUGINS="$(NATIVE_PLUGINS)" FTE_CONFIG=$(GAME) FTE_TARGET=linux64
find ThirdParty/fteqw/engine/release/ -name "fteplug_*.so" -exec mv '{}' $(BUILD_DIR)/$(NAME)-linux/ \;
$(ENGINE_DEDICATED):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=x86_64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-dbg FTE_CONFIG=$(GAME) ARCH=x86_64
install -m 0777 $(ENGINE_DEDICATED) ./$(GAMEDS_BINARY)
$(ENGINE_DS_LIN32):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs FTE_TARGET=win32
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-rel FTE_TARGET=win32 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-win"
install -m 0777 $(ENGINE_DS_WIN32) $(BUILD_DIR)/$(NAME)-win/$(NAME)DS_x86.exe
$(ENGINE_DS_LIN64):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs FTE_TARGET=win64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-rel FTE_TARGET=win64 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-win"
install -m 0777 $(ENGINE_DS_WIN64) $(BUILD_DIR)/$(NAME)-win/$(NAME)DS_x64.exe
$(ENGINE_DS_WIN32):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=i686 FTE_TARGET=linux32
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-rel ARCH=i686 FTE_TARGET=linux32 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-linux"
install -m 0777 $(ENGINE_DS_LIN32) $(BUILD_DIR)/$(NAME)-linux/$(NAME)DS_x86
$(ENGINE_DS_WIN64):
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=x86_64 FTE_TARGET=linux64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-rel ARCH=x86_64 FTE_TARGET=linux64 FTE_CONFIG=$(GAME)
mkdir -p "$(BUILD_DIR)/$(NAME)-linux"
install -m 0777 $(ENGINE_DS_LIN64) $(BUILD_DIR)/$(NAME)-linux/$(NAME)DS_x64
iqmtool:
cd ThirdParty/fteqw/engine && $(MAKE) iqmtool
install -m 0777 ./ThirdParty/fteqw/engine/release/iqmtool ./
imgtool:
cd ThirdParty/fteqw/engine && $(MAKE) imgtool
install -m 0777 ./ThirdParty/fteqw/engine/release/imgtool ./
fteqcc:
cd ThirdParty/fteqw/engine && $(MAKE) qcc-rel
install -m 0777 ./ThirdParty/fteqw/engine/release/fteqcc ./
generatebuiltinsl:
cd ThirdParty/fteqw/engine/shaders && $(MAKE) generatebuiltinsl
install -m 0777 ./ThirdParty/fteqw/engine/shaders/generatebuiltinsl ./
makevulkanblob:
cd ThirdParty/fteqw/engine/shaders && $(MAKE) makevulkanblob
install -m 0777 ./ThirdParty/fteqw/engine/shaders/makevulkanblob ./
# stock FTE engine
fteqw:
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=x86_64
cd ThirdParty/fteqw/engine && $(MAKE) $(ENGINE_CLBUILD) ARCH=x86_64
install -m 0777 ./ThirdParty/fteqw/engine/debug/fteqw ./
fteqwglqw64.exe:
cd ThirdParty/fteqw/engine && $(MAKE) makelibs FTE_TARGET=win64
cd ThirdParty/fteqw/engine && $(MAKE) m-rel FTE_TARGET=win64
mkdir -p "$(BUILD_DIR)/$(NAME)-win"
install -m 0777 $(ENGINE_BINARY_WIN64) $(BUILD_DIR)/fteqwglqw64.exe
fteqw-sv:
cd ThirdParty/fteqw/engine && $(MAKE) makelibs ARCH=stock-x86_64
cp $(GAME)/engine.h ./ThirdParty/fteqw/engine/common/config_$(GAME).h
cd ThirdParty/fteqw/engine && $(MAKE) sv-dbg FTE_CONFIG=fteqw ARCH=stock-x86_64
install -m 0777 ./ThirdParty/fteqw/engine/debug/fteqw ./fteqw
# third-party level editing software
radiant:
if [ ! -d ThirdParty/gtkradiant ];then git clone https://github.com/TTimo/gtkradiant ThirdParty/gtkradiant;fi
cd ThirdParty/gtkradiant && scons
Tools/make_launcher.sh ./ThirdParty/gtkradiant/install/ ./radiant.bin radiant
netradiant-custom:
if [ ! -d ThirdParty/netradiant-custom ];then git clone https://github.com/Garux/netradiant-custom ThirdParty/netradiant-custom;fi
cd ThirdParty/netradiant-custom && $(MAKE)
Tools/make_launcher.sh ./ThirdParty/netradiant-custom/install/ ./radiant.x86_64 netradiant-custom