# Nuclide-Lite Makefile # 2025-01-22 # id1 = Quake; data1 = Hexen 2; qw = QuakeWorld GAME=id1 ENGINE_CLBUILD=m-dbg EDITOR=radiant ENGINE_URL=https://www.github.com/fte-team/fteqw NAME=`./Tools/get-name.sh $(GAME)` NUCLIDE_DIR=`pwd` QCC_DIR=$(NUCLIDE_DIR) BUILD_DIR=$(NUCLIDE_DIR)/build help: @printf "Available targets:\n" @printf "\thelp\n" @printf "\tgame\n" @printf "\tfteqcc\n" @printf "\tfteqw\n" all: models maps game gfx game: cd $(GAME)/src/ && ../../fteqcc pak: game qfiles ./Tools/build_filesdat.sh id1 cd $(GAME)/src && ../../qfiles -pak 0 cd $(GAME)/src && ../../qfiles -pak 1 run: fteqw game ./fteqw -basedir `pwd` -netquake -game $(GAME) wad: imgtool palette ./Tools/build_wads.sh $(GAME) maps: wad ./Tools/build_maps.sh $(GAME) $(GAME)/maps/%.bsp: qbsp qlight qvis Tools/make_map.sh $(GAME) "$@" models: iqmtool palette ./Tools/build_models.sh $(GAME) gfx: imgtool palette cd $(GAME)/gfxsrc/ && ls | grep -v palette\.lmp | grep \.xcf | xargs ../../imgtool --rgb8 --ext png cd $(GAME)/gfxsrc/ && ls | grep -v palette\.png | grep \.png | xargs mogrify -type TrueColor -compress None -flip -format tga cp $(GAME)/gfx/palette.lmp $(GAME)/gfxsrc/palette.lmp cd $(GAME)/gfxsrc/ && ls | grep -v palette\.tga | grep \.tga | xargs ../../tga2lmp rm $(GAME)/gfxsrc/*.tga cp $(GAME)/gfx/palette.lmp $(GAME)/gfxsrc/palette.lmp rsync -va $(GAME)/gfxsrc/*.lmp $(GAME)/gfx/ rm $(GAME)/gfxsrc/*.lmp # various palette utilities needed tga2pal: gcc -o tga2pal Tools/Source/tga2pal.c tga2lmp: gcc -o tga2lmp Tools/Source/tga2lmp.c pal2pal: gcc -o pal2pal Tools/Source/pal2pal.c pal2colormap: gcc -o pal2colormap Tools/Source/pal2colormap.c qfiles: gcc -o qfiles Tools/Source/qfiles.c Tools/Source/cmdlib.c palette: pal2colormap pal2pal tga2pal if [ ! -d $(GAME)/gfx ];then mkdir $(GAME)/gfx; fi mogrify -type TrueColor -compress None -flip -format tga $(GAME)/gfxsrc/palette.png cd $(GAME)/gfxsrc/ && ../../tga2pal palette.tga cd $(GAME)/gfxsrc/ && ../../pal2pal palette.lmp cd $(GAME)/gfxsrc/ && ../../pal2colormap palette.lmp mv $(GAME)/gfxsrc/palette.lmp $(GAME)/gfx/palette.lmp mv $(GAME)/gfxsrc/colormap.lmp $(GAME)/gfx/colormap.lmp mv $(GAME)/gfxsrc/palette.pal $(GAME)/gfx/palette.pal -mkdir -p $(GAME)/gfxsrc -mkdir -p $(GAME)/textures # needed by gtkradiant cp $(GAME)/gfx/palette.lmp $(GAME)/textures/palette.lmp rm $(GAME)/gfxsrc/palette.tga # fteqw repo update: if [ ! -d ThirdParty/fteqw ];then mkdir ThirdParty && git clone $(ENGINE_URL) ThirdParty/fteqw;else cd ./ThirdParty/fteqw && git pull;fi if [ ! -d ThirdParty/gtkradiant ];then git clone https://github.com/TTimo/gtkradiant ThirdParty/gtkradiant;else cd ./ThirdParty/gtkradiant && git pull;fi fteqcc: update cd ThirdParty/fteqw/engine && $(MAKE) qcc-rel install -m 0777 ./ThirdParty/fteqw/engine/release/fteqcc ./ fteqw: update 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 ./ imgtool: update cd ThirdParty/fteqw/engine && $(MAKE) imgtool ARCH=x86_64 install -m 0777 ./ThirdParty/fteqw/engine/release/imgtool ./ iqmtool: update cd ThirdParty/fteqw/engine && $(MAKE) iqmtool ARCH=x86_64 install -m 0777 ./ThirdParty/fteqw/engine/release/iqmtool ./ qbsp: printf "qbsp build\n" qvis: printf "qvis build\n" qlight: printf "qlight build\n" radiant: update 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