diff setup @ 1:4d6502ffaa5e

Initial revision
author darius
date Sat, 06 Dec 1997 04:36:59 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/setup	Sat Dec 06 04:36:59 1997 +0000
@@ -0,0 +1,316 @@
+#!/bin/sh
+#
+# NETREK II -- Paradise server setup script
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any NON-COMMERCIAL purpose
+# (read the files 'src/copyright*.h')) and without 
+# fee is hereby granted, provided that this copyright notice appear in all 
+# copies.  No representations are made about the suitability of this 
+# software for any purpose.  This software is provided "as is" without 
+# express or implied warranty.
+# 
+#    Xtrek Copyright 1986                            Chris Guthrie
+#    Netrek (Xtrek II) Copyright 1989                Kevin P. Smith
+#                                                    Scott Silvey
+#    Paradise (Netrek II) Copyright 1993             Larry Denys
+#                                                    Kurt Olsen
+#                                                    Brandon Gillespie
+#                                                    Rob Forsman
+#
+#    Comprehensive Credits available in the file docs/CREDITS
+#
+# Note: this is just a quick hack I made, we can probably improve it later
+#  -Brandon
+
+trap "rm -f test.c a.out core $0.tmp; exit" 2 3
+
+t="     "
+i="- "
+
+echo "-- Netrek II (Paradise) --
+
+${t}Setup script for the Netrek II (Paradise) Server.
+
+${t}To rebuild the Makefile using previous options (in the instance that
+${t}Makefile.in was changed), use the \"-p\" (previous) flag, \"make
+${t}makefile\" will also execute \"setup -p\".
+"
+
+# figure out what to do with echo -- from perl's Configure
+# This blows chunks on Linux; fixed line from echotmp to $0.tmp.
+
+(echo "hi there \c" ; echo " ") > $0.tmp
+if grep c $0.tmp >/dev/null 2>&1 ; then
+        echo "${i}Supressing newlines with -n..."
+        n='-n'
+        c=''
+else
+        echo "${i}Supressing newlines with \\\c..."
+        n=''
+        c='\c'
+fi
+
+echo ''
+echo $n "${i}The asterisk should be here => $c"
+echo '*'
+echo ''
+
+if [ X$1 != X -a X$1 = X"-p" ]; then
+	echo "${i}Reading previous setup configuration..."
+	if [ ! -f etc/$0.conf ]; then
+                echo 
+		echo "${t}previous configuration file (etc/$0.conf) not found!"
+		exit 1
+	fi
+else
+
+###########################################################################
+# Global vars
+LIBS="-lm"
+
+###########################################################################
+SYS=`(/bin/uname || /usr/bin/uname) 2>/dev/null`
+
+case $SYS in
+SunOS)
+        # check for Solaris the hard way
+	if [ "`/bin/uname -rs | cut -c0-9`" != "SunOS 4.1" ]; then
+		SYS="SOLARIS"
+		CCOPTIONS="-DSYSV -DSVR4 ${CCOPTIONS}"
+		LIBS="-lnsl -lsocket ${LIBS}"
+	fi
+	;;
+HP-UX)
+	CCOPTIONS="-Ae -DSYSV ${CCOPTIONS}"
+	;;
+IRIX)
+	CCOPTIONS="-mips2 -DSYSV -DSVR4 -DBAD_SVR4_HACKS ${CCOPTIONS}"
+	LIBS="-lsun ${LIBS}"
+	;;
+OSF1)
+	CCOPTIONS="-DSYSV ${CCOPTIONS}"
+	;;
+*)
+	# this is a hack because Unixware returns odd things with /bin/uname
+	echo $n "Are you running Unixware? [yn] (default: n) $c"
+	read ANSWER
+	if [ X$ANSWER = X"y" ]; then
+		SYS="UNIXWARE"
+		CCOPTIONS="-DSYSV -DSVR4 -DBAD_SVR4_HACKS ${CCOPTIONS}"
+		LIBS="-lnsl -lsocket -lresolv ${LIBS}"
+	fi
+	;;
+esac
+
+echo ""
+echo "${i}Looks like you are running ${SYS}..."
+# Should probably check for RAND48, will add later if anybody complains
+CCOPTIONS="-D${SYS} -DHAVE_RAND48 ${CCOPTIONS}"
+
+
+############################################################################
+## compiler
+echo ""
+echo $n "${i}Checking for cc or gcc...$c"
+
+cat > test.c <<EOF
+int main() { exit(0); }
+EOF
+err=`eval "(gcc test.c >/dev/null) 2>&1"`
+rm -f test.c a.out
+
+if [ X"$err" != X ]; then
+	echo "using cc"
+	CC=cc
+else
+	echo "using gcc"
+	CC=gcc
+fi
+
+echo $n "
+	1 -- Basic optimization (-O -s)
+	2 -- Full optimization (-O2 -s)
+	3 -- Debug, no optimization (-g)
+
+Specify optimization/debug state. [123] (default: 1) $c"
+
+read DEBUG
+
+if [ X${DEBUG} = X ]; then
+	DEBUG="1"
+fi
+
+if [ ${DEBUG} = "1" ]; then
+	DEBUG="Basic optimization."
+	CDEBUGFLAGS="-O -s"
+elif [ ${DEBUG} = "2" ]; then
+	DEBUG="Full optimization."
+	CDEBUGFLAGS="-O2 -s"
+elif [ ${DEBUG} = "3" ]; then
+	while [ "${DEBUG}" = "3" ]; do
+		echo $n "
+	gdb     -- GNU Debugger
+	dbx     -- source level debugger
+	none    -- no debugger
+	<other> -- other debugger
+
+Use which debugger? (default: none) $c"
+		read DEBUGGER
+		if [ X${DEBUGGER} = X ]; then
+			DEBUGGER="none"
+		fi
+
+		if [ ${DEBUGGER} = "none" ]; then
+			DEBUG="Debug (No debugger), no optimization"
+			CDEBUGFLAGS="-g"
+		elif [ ${DEBUGGER} = "gdb" ]; then
+			DEBUG="Debug (GNU debugger), no optimization"
+			CDEBUGFLAGS="-ggdb"
+		elif [ ${DEBUGGER} = "dbx" ]; then
+			DEBUG="Debug, no optimization"
+			CDEBUGFLAGS="-gdbx"
+		else
+			echo $n "${t}\"${DEBUGGER}\" is an unknown debugger, use anyway? [yn] (default: y) $c"
+			read ANSWER
+			if [ X${ANSWER} = X"y" ]; then
+				DEBUG="Debug (Other: ${DEBUGGER}), no optimization"
+				CDEBUGFLAGS="-g${DEBUGGER}"
+			fi
+		fi
+	done
+else
+	echo "$0: unknown option \"${DEBUG}\", exiting."
+	exit 1
+fi
+
+#########################################################################
+
+if [ -f "rsa/Makefile" ]; then
+	echo $n "
+	You seem to have the RSA files.  RSA verification is NOT required
+	for the server to function, and is usually enabled only on high
+	profile public servers.
+
+Do you wish to enable RSA verification? [yn] (default: n) $c"
+
+	read ANSWER
+	if [ X${ANSWER} = X"y" ]; then
+		RSA="-DAUTHORIZE"
+		AUTHOBJS="rsa-server.o rsa_util.o reserved.o"
+	else
+		RSA=""
+		AUTHOBJS=""
+	fi
+else
+	echo "
+	RSA files do not exist, RSA verification is not enabled (RSA
+	verification is not required for the server to run, and is
+	usually only enabled on high profile public servers)."
+fi
+
+###########################################################################
+echo ""
+echo $n "${i}Does the mp library exist...$c"
+
+cat > test.c <<EOF
+int main() { exit(0); }
+int t() { main(); }
+EOF
+
+err=`eval "($CC test.c -lmp >/dev/null) 2>&1"`
+rm -f test.c a.out
+
+if [ -z "$err" ]; then
+	echo "yes."
+	LIBS="-lmp ${LIBS}"
+	if [ ! -z "$RSA" ]; then
+		echo ""
+		echo "${i}Using appropriate mp RSA files."
+		echo ""
+		AUTHOBJS="rsa-server.o rsa_utilmp.o reserved.o"
+	fi
+else
+	echo "no."
+fi
+
+###########################################################################
+# strdup()
+
+echo $n "${i}Does strdup() exist...$c"
+
+cat > test.c <<EOF
+#include <string.h>
+main () { char *str, *str2 = "test\n"; str = strdup(str2); }
+EOF
+
+err=`eval "($CC test.c >/dev/null) 2>&1"`
+if [ ! -z "$err" ]; then
+	CCOPTIONS="${CCOPTIONS} -DNO_STRDUP "
+	echo "no."
+else
+	echo "yes."
+fi
+
+rm -f test.c a.out
+
+##########################################################################
+# qsort()
+
+echo $n "${i}Does qsort() exist...$c"
+
+cat > test.c <<EOF
+#include <string.h>
+main () { qsort(); }
+EOF
+
+err=`eval "($CC test.c >/dev/null) 2>&1"`
+rm -f test.c a.out
+
+if [ ! -z "$err" ]; then
+	CCOPTIONS="${CCOPTIONS} -DNO_QSORT"
+	echo "no."
+else
+	echo "yes."
+fi
+
+##########################################################################
+
+# This is inefficient to do it seperately for each option, but it is
+# the cleanest way.
+
+echo "sed \"s:^#@@LIBS@:LIBS=${LIBS}:g\" src/Makefile.in > /tmp/a\$\$.setup" > etc/$0.conf
+echo "sed \"s:^#@@CC@:CC=${CC}:g\" /tmp/a\$\$.setup > /tmp/\$\$.setup" >> etc/$0.conf
+echo "sed \"s:^#@@CDEBUGFLAGS@:CDEBUGFLAGS=${CDEBUGFLAGS}:g\" /tmp/\$\$.setup > /tmp/a\$\$.setup" >> etc/$0.conf
+echo "sed \"s:^#@@RSA@:RSA=${RSA}:g\" /tmp/a\$\$.setup > /tmp/\$\$.setup" >> etc/$0.conf
+echo "sed \"s:^#@@AUTHOBJS@:AUTHOBJS=${AUTHOBJS}:g\" /tmp/\$\$.setup > /tmp/a\$\$.setup" >> etc/$0.conf
+echo "sed \"s:^#@@CCOPTIONS@:CCOPTIONS=${CCOPTIONS}:g\" /tmp/a\$\$.setup > /tmp/\$\$.setup" >> etc/$0.conf
+echo "echo \$\$" >> etc/$0.conf
+
+# This 'fi' is from the first if (checking "-d")
+fi
+
+echo ""
+echo $n "${i}Generating \"src/Makefile\" from \"src/Makefile.in\"...$c"
+
+SPID=`sh etc/$0.conf`
+
+echo "# This file generated by \"$0\" on `date`." > /tmp/${SPID}.Makefile
+echo "# Make changes to \"Makefile.in\" and run the setup script" >> /tmp/${SPID}.Makefile
+echo "#" >> /tmp/${SPID}.Makefile
+
+cat /tmp/${SPID}.Makefile > src/Makefile
+cat /tmp/${SPID}.setup >> src/Makefile
+
+rm -f /tmp/${SPID}.setup
+rm -f /tmp/a${SPID}.setup
+rm -f /tmp/${SPID}.Makefile
+
+echo "Done."
+echo ""
+echo "	use 'make <option>' to compile the server."
+echo ""
+echo "	To change the server game configuration check the file \"src/config.h\"."
+echo ""
+
+exit