nuclide-lite/Makefile

120 lines
3.6 KiB
Makefile

# 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