2005-11-26 03:02:55 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
#This is a fairly lame shell script
|
|
|
|
#It could be written so much better...
|
|
|
|
#Anyway, what it does is ask the user lots of questions and then pipes some text to a file which can be used by the engine.
|
|
|
|
#the Makefile explicitally tests for config.h, and will pass the right precompiler to gcc so that this file is actually used.
|
|
|
|
#And so we don't break in the absence of this file.
|
|
|
|
|
2006-03-11 03:12:10 +00:00
|
|
|
if [ "$1" = "y" ]; then
|
2005-11-26 03:02:55 +00:00
|
|
|
defaulttoyes=true
|
|
|
|
echo "Checking installed libraries"
|
|
|
|
else
|
|
|
|
echo "Answer the questions to generate a config.h file"
|
|
|
|
echo "If you wish to remove the config, delete it and recompile, make will sort stuff out"
|
|
|
|
echo "Many of these questions are irrelevent if you want to build only a dedicated server, for instance"
|
|
|
|
echo "Some of them depend on others"
|
|
|
|
echo "Usage of this script is not fully supported by the FTE team, and not every combination will likly work"
|
|
|
|
echo "If using this script does produce compile errors, you can try reporting the issue preferably via irc"
|
|
|
|
fi
|
|
|
|
|
|
|
|
#clear out the config
|
|
|
|
echo "//warning: generated file." > config.h
|
|
|
|
echo "//Use 'make config' to alter this file" >> config.h
|
|
|
|
echo "//it is safe to delete this file if you want to use the default settings" >> config.h
|
|
|
|
echo "" >> config.h
|
|
|
|
|
|
|
|
query()
|
|
|
|
{
|
2006-03-11 03:12:10 +00:00
|
|
|
if [ "$defaulttoyes" = "true" ]; then
|
2005-11-26 03:02:55 +00:00
|
|
|
ans=y
|
|
|
|
else
|
|
|
|
read -n 1 -p "$1 " ans
|
|
|
|
echo ""
|
|
|
|
fi
|
2006-03-11 03:12:10 +00:00
|
|
|
if [ "$ans" = "y" -o "$ans" = "Y" ]; then
|
2005-11-26 03:02:55 +00:00
|
|
|
echo "#define $2" >> config.h
|
|
|
|
else
|
|
|
|
echo "//#define $2" >> config.h
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
querylibrary()
|
|
|
|
{
|
|
|
|
if [ -f /usr/include/$3 ] ; then
|
|
|
|
query "$1" "$2"
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
if [ -f /usr/local/include/$4 ] ; then
|
|
|
|
query "$1" "$2"
|
|
|
|
return
|
|
|
|
fi
|
2006-03-11 03:12:10 +00:00
|
|
|
#they don't have it, force no.
|
2005-11-26 03:02:55 +00:00
|
|
|
echo "$1 n"
|
|
|
|
echo "//#define $2" >> config.h
|
|
|
|
}
|
|
|
|
|
|
|
|
querylibrary "Is libz (zlib) available on this system (zip support)?" AVAIL_ZLIB "zlib.h"
|
|
|
|
querylibrary "Is libvorbis (a free media library) available on this system (ogg support) ?" AVAIL_OGGVORBIS "vorbis/vorbisfile.h"
|
|
|
|
# querylibrary "Is libmad (an mp3 library) available on this system (mp3 support) ?" AVAIL_MP3
|
|
|
|
querylibrary "Is libpng available on this system (png support)?" AVAIL_PNGLIB "png.h"
|
|
|
|
querylibrary "Is libjpeg available on this system (jpeg support)?" AVAIL_JPEGLIB "jpeglib.h"
|
|
|
|
query "Do you want to enable the dds support ?" DDS
|
|
|
|
query "Do you want to enable on-server rankings?" SVRANKING
|
|
|
|
query "Do you want to enable stainmaps in software rendering?" SWSTAINS
|
|
|
|
query "Do you want to enable secondary/reverse views?" "SIDEVIEWS 4"
|
|
|
|
query "Do you want to enable quake2 sprites (sp2) ?" SP2MODELS
|
|
|
|
query "Do you want to enable quake2 models (md2) ?" MD2MODELS
|
|
|
|
query "Do you want to enable quake3arena models (md3) ?" MD3MODELS
|
|
|
|
query "Do you want to enable doom3 models (md5) ?" MD5MODELS
|
|
|
|
query "Do you want to enable 'zymotic' models (zym, used by nexuiz) ?" ZYMOTICMODELS
|
|
|
|
query "Do you want to enable basic halflife model support (mdl) ?" HALFLIFEMODELS
|
|
|
|
query "Do you want to enable network compression (huffman) ?" HUFFNETWORK
|
|
|
|
#query "Do you want to enable doom wad, map and sprite support (best to say no here) ?" DOOMWADS
|
|
|
|
query "Do you want to enable quake2 map support ?" Q2BSPS
|
|
|
|
query "Do you want to enable quake3 map support ?" Q3BSPS
|
|
|
|
query "Do you want to enable fte's heightmap support ?" TERRAIN
|
|
|
|
query "Do you want to enable the built in master server ?" SV_MASTER
|
|
|
|
query "Do you want to enable the FTE_NPCCHAT qc extention ?" SVCHAT
|
|
|
|
query "Do you want to enable the quake2 server ?" Q2SERVER
|
|
|
|
query "Do you want to enable the quake2 client ?" Q2CLIENT
|
|
|
|
query "Do you want to enable the quake3 server ?" Q3SERVER
|
|
|
|
query "Do you want to enable the quake3 client ?" Q3CLIENT
|
|
|
|
query "Do you want to enable netquake compatability ?" NQPROT
|
|
|
|
query "Do you want to allow connections via tcp (for suppose3rd party firewalls) ?" TCPCONNECT
|
|
|
|
query "Do you want to enable fish-eye views (only in software) ?" FISH
|
|
|
|
query "Do you want to enable the built in http/ftp server ?" WEBSERVER
|
|
|
|
query "Do you want to enable the built in http/ftp clients ?" WEBCLIENT
|
|
|
|
query "Do you want to enable the deluxemap generation routine ?" RUNTIMELIGHTING
|
2006-03-11 03:12:10 +00:00
|
|
|
#query "Do you want to enable the 'qterm' (this is a major security risk) ?" QTERM
|
2005-11-26 03:02:55 +00:00
|
|
|
query "Do you want to enable the server browser ?" CL_MASTER
|
|
|
|
query "Do you want to enable the serial-mouse support (used in splitscreen) ?" SERIALMOUSE
|
|
|
|
query "Do you want to enable the per-pixel lighting routines ?" PPL
|
|
|
|
query "Do you want to enable the text editor ?" TEXTEDITOR
|
|
|
|
query "Do you want to enable the plugin support ?" PLUGINS
|
|
|
|
query "Do you want to enable csqc support ?" CSQC_DAT
|
|
|
|
query "Do you want to enable menu.dat support (used by nexuiz) ?" MENU_DAT
|
|
|
|
query "Do you want to enable the built in irc client (note that there is also a plugin irc client, which cooler) ?" IRCCLIENT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "#define R_XFLIP" >> config.h
|
|
|
|
echo "#define IN_XFLIP" >> config.h
|
|
|
|
|