# # Nuclide GNUMakefile # # Apr 2024 by Marco Cawthorne # Last updated: 2025/01/30 # # 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" RADIANT_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" NRC_GAME="$(NUCLIDE_DIR)/ThirdParty/netradiant-custom/install/gamepacks/games/$(NAME).game" NRC_GAMEDIR="$(NUCLIDE_DIR)/ThirdParty/netradiant-custom/install/gamepacks/$(NAME).game/$(GAME)/" NRC_DEF="$(NRC_GAMEDIR)/entities.def" NRC_SYNAPSE="$(NRC_GAMEDIR)/../default_build_menu.xml" EDITOR_VMAP="$(ARGSTR)TEMPLATEenginepath/vmap" EDITOR_ENGINEPATH="$(ARGSTR)TEMPLATEenginepath" EDITOR_BASEPATH="$(ARGSTR)TEMPLATEbasedir" EDITOR_HOMEPATH="$(ARGSTR)TEMPLATEuserhomepath" help: @printf "################################################################################\n" @printf " Nuclide Makefile Help - Developed by Vera Visions LLC\n" @printf "################################################################################\n" @printf "\nSwitch games by setting GAME=gamedir after the target\n\n" @printf "main targets:\n" @printf "\tgame \t\t\t\t# Builds the game logic\n" @printf "\t\t\t\t\t# alternatively: client, server, menu\n\n" @printf "\tdefs \t\t\t\t# Editor definitions\n" @printf "\tdefs-wad \t\t\t# WAD favoring editor definitions\n" @printf "\tengine [NAME=MyGame] \t\t# Branded engine binary\n" @printf "\tdedicated \t\t\t# Branded dedicated server binary\n" @printf "\tplugins \t\t\t# Plugins required by game\n" @printf "\ttools \t\t\t\t# Builds the various tools\n" @printf "\tfteqw \t\t\t\t# Builds FTEQW\n" @printf "\tfteqw \t\t\t\t# Builds FTEQCC\n" @printf "\tradiant \t\t\t# Builds GtkRadiant\n" @printf "\tnetradiant-custom \t\t# Builds NetRadiant-Custom\n" @printf "\tdocs \t\t\t\t# Builds Documentation/html/*.html\n" @printf "\tdist \t\t\t\t# Builds binary for distribution\n" @printf "\tclean[-game,engine,tools] \t# Cleans temp files\n" @printf "\tupdate \t\t\t\t# Update online repos.\n" all: game engine dedicated plugins game: fteqcc -cp src/cvar_defaults.cfg "$(GAME)/default_cvar.cfg" cd "$(GAME)/src/" && $(MAKE) QCC=$(QCC_DIR)/../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" client: fteqcc cd "$(GAME)/src/client/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" server: fteqcc cd "$(GAME)/src/server/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" rules: fteqcc cd "$(GAME)/src/rules/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" menu: fteqcc cd "$(GAME)/src/menu/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" mapc: fteqcc cd "$(GAME)/src/maps/" && $(MAKE) QCC=$(QCC_DIR)/../../../fteqcc CFLAGS="-I$(QCC_DIR)/../../src/common/" # will build a gamepack for gtkradiant defs-nrc-q3: netradiant-custom $(GAME)/scripts/entities.def mkdir -p "$(NRC_GAMEDIR)" echo "" > "$(NRC_GAME)" echo "> "$(NRC_GAME)" echo " type=\"q3\"" >> "$(NRC_GAME)" echo " name=\"$(NAME)\"" >> "$(NRC_GAME)" echo " enginepath_linux=\"$(NUCLIDE_DIR)\"" >> "$(NRC_GAME)" echo " enginepath_win32=\"c:$(NUCLIDE_DIR)\"" >> "$(NRC_GAME)" echo " engine_win32=\"fteqw.exe\"" >> "$(NRC_GAME)" echo " engine_linux=\"fteqw\"" >> "$(NRC_GAME)" echo " basegame=\"$(GAME)\"" >> "$(NRC_GAME)" echo " basegamename=\"$(NAME)\"" >> "$(NRC_GAME)" echo " unknowngamename=\"Custom Game Directory\"" >> "$(NRC_GAME)" echo " default_scale=\"1.0\"" >> "$(NRC_GAME)" echo " no_patch=\"1\"" >> "$(NRC_GAME)" echo " no_bsp_monitor=\"1\"" >> "$(NRC_GAME)" echo " archivetypes=\"pk3\"" >> "$(NRC_GAME)" echo " texturetypes=\"tga jpg png ktx dds\"" >> "$(NRC_GAME)" echo " modeltypes=\"md3 ase lwo obj 3ds 3d 3mf ac ac3d acc amf ask assbin b3d blend bvh cob csm dae dxf enff fbx glb gltf hmp iqm irr irrmesh lws lxo m3d md2 md5mesh mdc mdl mesh mesh.xml mot ms3d ndo nff off ply pmx prj q3o q3s raw scn sib smd stl ter uc vta x x3d x3db xgl xml zae zgl\"" >> "$(NRC_GAME)" echo " maptypes=\"mapq3\"" >> "$(NRC_GAME)" echo " shaders=\"quake3\"" >> "$(NRC_GAME)" echo " shaderpath=\"texturesrc\"" >> "$(NRC_GAME)" echo " entityclass=\"quake3\"" >> "$(NRC_GAME)" echo " entityclasstype=\"def xml\"" >> "$(NRC_GAME)" echo " entities=\"quake3\"" >> "$(NRC_GAME)" echo " brushtypes=\"quake3\"" >> "$(NRC_GAME)" echo " patchtypes=\"quake3\"" >> "$(NRC_GAME)" echo "/>" >> "$(NRC_GAME)" cp "$(GAME)/scripts/entities.def" "$(NRC_DEF)" echo "" > $(NRC_SYNAPSE) echo "" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qbsp\"" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qvis\"" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qrad\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] -onlyents \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\" " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\" " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo "" >> $(NRC_SYNAPSE) defs-nrc-q1: netradiant-custom $(GAME)/scripts/entities.def mkdir -p "$(NRC_GAMEDIR)" echo "" > "$(NRC_GAME)" echo "> "$(NRC_GAME)" echo " type=\"q1\"" >> "$(NRC_GAME)" echo " name=\"$(NAME)\"" >> "$(NRC_GAME)" echo " enginepath_linux=\"c:$(NUCLIDE_DIR)\"" >> "$(NRC_GAME)" echo " enginepath_win32=\"c:$(NUCLIDE_DIR)\"" >> "$(NRC_GAME)" echo " engine_win32=\"fteqw.exe\"" >> "$(NRC_GAME)" echo " engine_linux=\"fteqw\"" >> "$(NRC_GAME)" echo " basegame=\"$(GAME)\"" >> "$(NRC_GAME)" echo " basegamename=\"$(NAME)\"" >> "$(NRC_GAME)" echo " unknowngamename=\"Custom Quake modification\"" >> "$(NRC_GAME)" echo " default_scale=\"1.0\"" >> "$(NRC_GAME)" echo " no_patch=\"1\"" >> "$(NRC_GAME)" echo " no_bsp_monitor=\"1\"" >> "$(NRC_GAME)" echo " show_wads=\"1\"" >> "$(NRC_GAME)" echo " archivetypes=\"pak wad\"" >> "$(NRC_GAME)" echo " texturetypes=\"tga jpg mip hlw\"" >> "$(NRC_GAME)" echo " modeltypes=\"mdl\"" >> "$(NRC_GAME)" echo " maptypes=\"mapq1\"" >> "$(NRC_GAME)" echo " shaders=\"quake3\"" >> "$(NRC_GAME)" echo " entityclass=\"quake3\"" >> "$(NRC_GAME)" echo " entityclasstype=\"def xml\"" >> "$(NRC_GAME)" echo " entities=\"quake3\"" >> "$(NRC_GAME)" echo " brushtypes=\"quake\"" >> "$(NRC_GAME)" echo " patchtypes=\"quake3\"" >> "$(NRC_GAME)" echo "/>" >> "$(NRC_GAME)" cp "$(GAME)/scripts/entities.def" "$(NRC_DEF)" echo "" > $(NRC_SYNAPSE) echo "" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qbsp\"" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qvis\"" >> $(NRC_SYNAPSE) echo " \"[EnginePath]qrad\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] -onlyents \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\" " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] \"[MapFile]\" " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo " [bsp] \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [vis] -noambient -fast \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " [light] -extra4x4 \"[MapFile]\"" >> $(NRC_SYNAPSE) echo " " >> $(NRC_SYNAPSE) echo "" >> $(NRC_SYNAPSE) # will build a gamepack for gtkradiant defs-gtkradiant-q3: radiant $(GAME)/scripts/entities.def echo "" > "$(RADIANT_GAME)" echo "> "$(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 "" > "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" > "$(RADIANT_SYNAPSE)" echo "png jpg tga" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "pk3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "mapq3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "def" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "pk3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "pk3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "quake3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "pk3" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts" cp "$(GAME)/scripts/entities.def" "$(RADIANT_DEF)" echo "" > "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" > "$(RADIANT_SHADERLIST)" mkdir -p "$(RADIANT_TEXTURES)/." rsync -rva "$(NUCLIDE_DIR)/Tools/textures/." "$(RADIANT_TEXTURES)/." mkdir -p "$(HOME)/.$(GAME)/$(GAME)/scripts" # will build a gamepack for gtkradiant defs-gtkradiant-q1: radiant $(GAME)/scripts/entities.def echo "" > "$(RADIANT_GAME)" echo "> "$(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 "" > "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" >> "$(RADIANT_XLINK)" echo "" > "$(RADIANT_SYNAPSE)" echo "pcx tga mip" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "wad" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "maphl" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "def" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "wad" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "wad" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "idtech2" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" echo "wad" >> "$(RADIANT_SYNAPSE)" echo "" >> "$(RADIANT_SYNAPSE)" mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts" cp "$(GAME)/scripts/entities.def" "$(RADIANT_DEF)" echo "" > "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" echo "" >> "$(RADIANT_PROJECT)" mkdir -p "$(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)/." defs: if [ -d "$(NUCLIDE_DIR)/ThirdParty/gtkradiant" ];then $(MAKE) defs-gtkradiant-q3;fi if [ -d "$(NUCLIDE_DIR)/ThirdParty/netradiant-custom" ];then $(MAKE) defs-nrc-q3;fi defs-wad: if [ -d "$(NUCLIDE_DIR)/ThirdParty/gtkradiant" ];then $(MAKE) defs-gtkradiant-q1;fi if [ -d "$(NUCLIDE_DIR)/ThirdParty/netradiant-custom" ];then $(MAKE) defs-nrc-q1;fi $(GAME)/scripts/entities.def: Tools/make_mapdef.sh $(GAME) maps: Tools/make_maps.sh $(GAME) wads: imgtool ./Tools/build_wads.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 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: fteqcc if [ -d $(GAME)/src ];then $(MAKE) game GAME=$(GAME) NAME="$(NAME)";fi 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" @printf "Building finished. Check %s\n", "$(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)/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 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: $(ENGINE_BINARY) 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 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 # game engine binaries $(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/ \; # game dedicated binaries $(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 # tools 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: if [ ! -d ThirdParty ];then mkdir ThirdParty && git clone $(ENGINE_URL) ThirdParty/fteqw;fi 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=x86_64 cd ThirdParty/fteqw/engine && $(MAKE) sv-dbg FTE_CONFIG=fteqw ARCH=x86_64 install -m 0777 ./ThirdParty/fteqw/engine/debug/fteqw-sv ./fteqw-sv # stock FTE plugins 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 '{}' ./ \; # 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) DOWNLOAD_GAMEPACKS=no BUILD=debug RADIANT_ABOUTMSG="NuclideLite managed build." mkdir -p ./ThirdParty/netradiant-custom/install/gamepacks/games Tools/make_launcher.sh ./ThirdParty/netradiant-custom/install/ ./radiant.x86_64 netradiant-custom