#!/bin/sh

RULESFILE=Rules.make
BEOS_CONFIGFILE=/boot/home/config/settings/FreeCraft/FreeCraft.cfg

cat << .. > $RULESFILE
##   ___________		     _________		      _____  __
##   \_	  _____/______   ____   ____ \_   ___ \____________ _/ ____\/  |_
##    |    __) \_  __ \_/ __ \_/ __ \/    \  \/\_  __ \__  \\   __\\   __\ 
##    |     \   |  | \/\  ___/\  ___/\     \____|  | \// __ \|  |   |  |
##    \___  /   |__|    \___  >\___  >\______  /|__|  (____  /__|   |__|
##	  \/		    \/	   \/	     \/		   \/
##  ______________________                           ______________________
##			  T H E   W A R   B E G I N S
##	   FreeCraft - A free fantasy real time strategy game engine
##
..
##	setup		-	Configure Rules.make (GNU MAKE rules).
##
##	(c) Copyright 2000,2001 by Dan Hensley
##
##	$Id$
##

#------------------------------------------------------------------------------
# HERE ARE SOME USER-CONFIGURABLE VARIABLES

EXTRA_CFLAGS="-DSLOW_INPUT -DUNIT_ON_MAP -DNEW_SHIPS -DNEW_NETMENUS"
# This could be used for experimental versions
## There are some still not well tested code parts or branches.
## UNITS_ON_MAP:	Faster lookup of units
## NEW_MAPDRAW:		Stephans new map draw code
## These aren't working yet:
## NEW_NAMES:		New unit names without copyleft problems
## NEW_FOW:		New fog of war code, should work correct
## NEW_AI:		New better improved AI code
## NEW_SHIPS:		New correct ship movement.
## NEW_NETMENUS:	Menu driven network set-up.

# Compile commands
CC=gcc
RM="rm -f"
MAKE=make

# if your system/distribution lacks libpng, you may install the source
# in the freecraft directory and name that directory here!
# Default (tested) version is 1.0.5, anything above should also be ok.
# Adjust as required - ignored if the directory does not exist.
LOCAL_PNG="libpng-1.0.5"

# Please note that on most systems libpng also requires libz, so
# you might additionally need to install the following:

# if your system/distribution lacks libz, you may install the source
# in the freecraft directory and name that directory here!
# Default (tested) version is 1.1.3, anything above should also be ok.
# Adjust as required - ONLY USED IF SYSTEM HAS NO ZLIB INSTALLED BY DEFAULT!
LOCAL_ZLIB="zlib-1.1.3"


#------------------------------------------------------------------------------
# DON'T CHANGE ANYTHING FROM HERE DOWN UNLESS YOU KNOW WHAT YOU ARE DOING

VERSION="-DVERSION=\"1.17pre1-build12\""
UNIX=0
BEOS=0
WIN32=0
DARWIN=0

# Choose optimization level
#DEBUG_CFLAGS="-g -O0 \$(PROFILE) -pipe -Wall -Werror \$(IFLAGS) \$(DFLAGS)"
DEBUG_CFLAGS="-g -O1 -Wall -Werror \$(IFLAGS) \$(DFLAGS)"
#-- Production (default)
CFLAGS="-O2 -pipe -fomit-frame-pointer -fconserve-space -fexpensive-optimizations -ffast-math  \$(IFLAGS) \$(DFLAGS)"

#------------------------------------------------------------------------------
# Function declarations

function check_for_libs() {

  TEMPFILE=temp$$
  cat << "  EOF" > $TEMPFILE.c
  int main(){ int i; }
  EOF
  if test "`cc -o $TEMPFILE.a -w $TEMPFILE.c $LIBCHECK 2>&1` x" = " x" ; then
    rm -f $TEMPFILE.[coa] > /dev/null 2>&1
    return 0
  elif test "`gcc -o $TEMPFILE.a -w $TEMPFILE.c $LIBCHECK 2>&1` x" = " x" ; then
    rm -f $TEMPFILE.[coa] > /dev/null 2>&1
    return 0
  else
    rm -f $TEMPFILE.[coa] > /dev/null 2>&1
    return 1
  fi
}

#------------------------------------------------------------------------------
# Parse input arguments

while test $# != 0 ; do
  case $1 in
    "-?"|"--help")
      echo
      echo "usage: setup [--static] [--unix] [--beos] [--win32] [--darwin] [--debug] [--profile]"
      echo
      echo "Setup will create a Rules.make file that Freecraft needs to compile."
      echo "Supported command-line arguments (you may use more than one at a time):"
      echo "  static  : Compile Freecraft using static libraries (default dynamic)"
      echo "  unix    : Force Unix/Linux compile options (default auto check)"
      echo "  beos    : Force BeOS compile options (default auto check)"
      echo "  win32   : Force WIN32 compile options (default auto check)"
      echo "  darwin  : Force Darwin compile options (default auto check)"
      echo "  debug   : Compile with debug options (default no)"
      echo "  profile : Compile with profile support (default off)"
      echo
      exit
      ;;

    "--static")
      STATIC=-static
      ;;

    "--unix")
      UNIX=1
      BEOS=0
      WIN32=0
      DARWIN=0
      ;;

    "--beos")
      UNIX=0
      BEOS=1
      WIN32=0
      DARWIN=0
      ;;

    "--win32")
      UNIX=0
      BEOS=0
      WIN32=1
      DARWIN=0
      ;;

    "--darwin")
      UNIX=0
      BEOS=0
      WIN32=0
      DARWIN=1
      ;;

    "--profile")
      PROFILE=-pg
      ;;

    "--debug")
      CFLAGS=$DEBUG_CFLAGS
      DEBUG=1
      ;;

    *)
      echo "Unknown command-line option '$1'"
      exit

  esac

  shift
done

#
# Display banner

cat $RULESFILE
echo >> $RULESFILE
echo; echo

#------------------------------------------------------------------------------
# Determine if this is for UNIX, BEOS, or WIN32

if [ "$UNIX" != "1" ] ; then
  if [ "$BEOS" != "1" ] ; then
    if [ "$WIN32" != "1" ] ; then
      if [ "$DARWIN" != "1" ] ; then

if [ "$WIN32" = "0" ] ; then
  if [ "`uname | grep -is cygwin` x" != " x" ] ; then
    UNIX=0
    BEOS=0
    WIN32=1
    DARWIN=0
    echo "It appears that you are in a Cygwin/win32 environment..."
    echo "Use --darwin, --unix or --beos to override"
  fi
fi

if [ "$BEOS" = "0" ] ; then
  if [ "`uname -a | grep -is beos` x" != " x" ] ; then
    UNIX=0
    BEOS=1
    WIN32=0
    DARWIN=0
    echo "It appears that you are in a BeOS environment..."
    echo "Use --darwin, --unix or --win32 to override"
  fi
fi

if [ "$DARWIN" = "0" ] ; then
  if [ "`uname -a | grep -is darwin` x" != " x" ] ; then
    DARWIN=1
    UNIX=0
    BEOS=0
    WIN32=0
    CC=cc
   CFLAGS="-O2 -pipe -fomit-frame-pointer -fconserve-space -fexpensive-optimizations -ffast-math  \$(IFLAGS) \$(DFLAGS) -traditional-cpp"
    echo "It appears that you are in a Darwin environment..."
    echo "Use --beos, --win32 or --unix to override"
  fi
fi

if [ "$UNIX" = "0" ] ; then
  if [ "$BEOS" = "0" ] ; then
    if [ "$WIN32" = "0" ] ; then
      if [ "$DARWIN" = "0" ] ; then
        UNIX=1
	BEOS=0
        WIN32=0
	DARWIN=0
	echo "It appears that you are in a UNIX environment..."
	echo "Use --beos or --win32 or --darwin to override"
      fi
    fi
  fi
fi

fi
fi
fi
fi

echo

#------------------------------------------------------------------------------
#       libpng support part
#------------------------------------------------------------------------------

echo -n "Checking for PNG library..."

# libpng most likely requires libz.a, so check for it first..
LIBCHECK="-lz"; check_for_libs
if test "$?" = 0 ; then
  HAVE_LIBZ=1
  PNG_EXTRA="-lz"
else
  LIBCHECK="-lz -L./$LOCAL_ZLIB"; check_for_libs
  if test "$?" = 0 ; then
    HAVE_LIBZ=2
    PNG_EXTRA="$LIBCHECK"
  fi
fi

PNG_PATH=""
PNG_LOCAL=0
if test -d $LOCAL_PNG ; then
    PNG_PATH="-L./\$LOCAL_PNG"
    PNG_LOCAL=1
fi
LIBCHECK="$PNG_PATH -lpng $PNG_EXTRA"; check_for_libs
if test "$?" = 0 ; then
  if test "$PNG_LOCAL" = 1 ; then
    echo " OK (local: $LOCAL_PNG)";
  else
    echo " OK";
  fi
else
  echo " NOT FOUND!";
  echo
  echo "...You do not appear to have a working PNG library installed!"
  echo
  echo "libpng is required for freecraft to compile. Please "
  echo "refer to the LOCAL_PNG section in the setup script to "
  echo "find out how to install a local copy to compile freecraft."
  echo
  echo "Please also note that the PNG library most likely also"
  echo "requires the GZIP compression library. If you are sure"
  echo "to have libpng installed, but this test still fails,"
  echo "check out for libz. You may refer to the LOCAL_ZLIB"
  echo "section of this script to find out how to install a local"
  echo "local copy of the libz."
  echo

  exit 1
fi

#------------------------------------------------------------------------------
#       Compile commands
#------------------------------------------------------------------------------

echo "# Compile commands" >> $RULESFILE
echo "CC=$CC" >> $RULESFILE
echo "RM=$RM" >> $RULESFILE
echo "MAKE=$MAKE" >> $RULESFILE
echo >> $RULESFILE

#------------------------------------------------------------------------------
#       SIOD support part
#------------------------------------------------------------------------------

echo "# Use SIOD support" >> $RULESFILE
if [ "$BEOS" != "1" ] ; then
  if [ "$DARWIN" != "1" ] ; then
    echo "CCL		= -DUSE_CCL" >> $RULESFILE
    echo "CCLLIB		= -lm" >> $RULESFILE
  else
    echo "CCL             = -DUSE_CCL" >> $RULESFILE
    echo "CCLLIB		= -dl" >> $RULESFILE
  fi
else
  echo "CCL             = -DUSE_CCL -DUSE_BEOS" >> $RULESFILE
  echo "CCLLIB		=" >> $RULESFILE
fi
echo >> $RULESFILE

#------------------------------------------------------------------------------
#	Video driver part
#------------------------------------------------------------------------------

# Check for various libraries
echo
echo "Checking for various video libraries..."

# Check for SDL >= 1.x
if test "$(sdl-config --version 2>/dev/null)" = "1.*" ; then
  echo "...You do not appear to have SDL installed"
else
  HAVESDL=1
fi

if [ "$BEOS" != "1" ] ; then

if [ "$DARWIN" != "1" ] ; then
  # Check for SVGALIB
  LIBCHECK="-lvga -lvgagl"
  check_for_libs
  if test "$?" = 0 ; then
    HAVESVGA=1
  else
    echo "...You do not appear to have SVGALIB installed"
  fi
fi

echo
echo "VIDEO DRIVER OPTIONS"
echo
if test "$WIN32" = "0" ; then
  echo "  X-X11 Support (default)"
fi

if test "$HAVESDL" = 1 ; then
  echo "  S-SDL Support"
fi
if test "$HAVESVGA" = 1 ; then
  echo "  V-SVGALIB Support"
fi
if (test "$HAVESVGA" = 1 && test "$HAVESDL" = 1) ; then
  echo "  B-SDL/SVGALIB Support"
fi
echo
echo -n "Please enter selection: "
read VIDSEL

else

if [ "$HAVESDL" = 1 ] ; then
  VIDSEL="S"
else
  echo "FreeCraft on BeOS currently only supports SDL for video"
  echo "Please install SDL and try again."
  exit -1
fi

fi

#

echo "# Video support" >> $RULESFILE
case $VIDSEL in
  [sS])
	echo -n "Using SDL"
  	USESDL=1
	SDLLIB="\$(shell sdl-config --libs)"
	echo "SDL		= -DUSE_SDL -DUSE_SDLA \$(SDL_CFLAGS)" >> $RULESFILE
	echo "SDL_CFLAGS	= \$(shell sdl-config --cflags)" >> $RULESFILE

        if test "$STATIC x" != " x" ; then
	  SDLLIB="$SDLLIB -lesd"
	fi

	echo "SDLLIB		= $SDLLIB" >> $RULESFILE
	echo >> $RULESFILE
	echo "VIDEO		= \$(SDL)" >> $RULESFILE
if [ "$BEOS" != "1" ] ; then
	echo "VIDEOLIB	= \$(SDLLIB) -ldl" >> $RULESFILE
else
        echo "VIDEOLIB	= \$(SDLLIB)" >> $RULESFILE
fi

	echo
	;;

  [vV])
	echo "Using SVGALIB"
	echo "VIDEO		= -DUSE_SVGALIB" >> $RULESFILE
	echo "VIDEOLIB	= -lvga" >> $RULESFILE
	;;

  [bB])
	echo -n "Using SDL/SVGALIB"
  	USESDL=1
	SDLLIB="\$(shell sdl-config --libs)"
	echo "SDL		= -DUSE_SDL -DUSE_SDLA \$(SDL_CFLAGS)" >> $RULESFILE
	echo "SDL_CFLAGS	= \$(shell sdl-config --cflags)" >> $RULESFILE

        if test "$STATIC x" != " x" ; then
	  SDLLIB="$SDLLIB -lesd"
	fi

	echo "SDLLIB		= $SDLLIB" >> $RULESFILE
	echo >> $RULESFILE
	echo "VIDEO		= \$(SDL)" >> $RULESFILE
	echo "VIDEOLIB	= \$(SDLLIB) -lvga -lvgagl -ldl" >> $RULESFILE
	echo
	;;

  *)
	echo "Using X11"
	echo "VIDEO		= -DUSE_X11" >> $RULESFILE
	echo "VIDEOLIB	= -lXext -lX11 -ldl" >> $RULESFILE
	;;

esac
echo "" >> $RULESFILE

#
# Put in Cygwin/win32 stuff if necessary, and test for mingw32

if test "$WIN32" = "1" ; then
	echo "VIDEO		= -DUSE_WIN32 \$(SDL)" >> $RULESFILE
	if test "`gcc -v 2>&1 | grep -is mingw32` x" = " x" ; then
	  echo "VIDEOLIB	= \$(SDLLIB)" >> $RULESFILE
	else
	  echo "VIDEOLIB	= \$(SDLLIB) -lwsock32 -Wl,--stack,33554432" >> $RULESFILE
	fi
fi

#------------------------------------------------------------------------------
#	Sound part
#------------------------------------------------------------------------------

echo
echo -n "Do you want to compile with sound? (y) "
read ANSWER
case $ANSWER in
  [nN])
	echo "No sound support"
	;;

  *)
	echo "Compiling with sound support"
	echo "# Sound support" >> $RULESFILE
	echo "DSOUND		= -DWITH_SOUND" >> $RULESFILE
	if ! test "$USESDL" = 1 ; then

	  # Check for libpthread

	  LIBCHECK="-lpthread"
	  check_for_libs
	  if test "$?" = 0 ; then
	    echo "Assuming you have a thread-safe X11 (libc6 or glibc),"
	    echo -n "do you want to compile with threaded sound? (n) "
	    read ANSWER2
	    case $ANSWER2 in [yY])
	      echo "THREAD		= -D_REENTRANT -DUSE_THREAD" >> $RULESFILE
	      echo "THREADLIB	= -lpthread" >> $RULESFILE
	      ;;
	    esac
	  fi
	fi
esac

echo >> $RULESFILE
echo

#------------------------------------------------------------------------------
#	Compression options part
#------------------------------------------------------------------------------

# Check for compression libraries
echo "Checking for compression libraries..."
echo

# libbz2
LIBCHECK="-lbz2"; check_for_libs
if test "$?" = 0 ; then HAVE_LIBBZ2=1; fi
if test "$WIN32" = 1 ; then HAVE_LIBBZ2=0; fi	# Bzip2 not supported by Cygwin

# Determine default compression option based on what's available

if (test "$HAVE_LIBZ" = 1 -o "$HAVE_LIBZ" = 2 && test "$HAVE_LIBBZ2" = 1) ; then
  DEF4=" (default)"; COMPDEF="O"
elif test "$HAVE_LIBBZ2" = 1 ; then
  DEF3=" (default)"; COMPDEF="B"
elif test "$HAVE_LIBZ" = 1 -o "$HAVE_LIBZ" = 2 ; then
  DEF2=" (default)"; COMPDEF="G"
else
  DEF1=" (default)"; COMPDEF="N"
fi

# Display menu

echo "COMPRESSION OPTIONS"
echo
echo "  N-None"$DEF1
if test "$HAVE_LIBZ" = 1 ; then
  echo "  G-GZ"$DEF2
fi
if test "$HAVE_LIBZ" = 2 ; then
  echo "  G-GZ"$DEF2 " (local: $LOCAL_ZLIB)"
fi
if test "$HAVE_LIBBZ2" = 1 ; then
  echo "  B-Bzip2"$DEF3
fi
if (test "$HAVE_LIBZ" = 1 -o "$HAVE_LIBZ" = 2 && test "$HAVE_LIBBZ2" = 1) ; then
  echo "  O-Both GZ and Bzip2"$DEF4
fi
echo
echo -n "Please enter selection ($COMPDEF): "
read COMPOPT

if test "$COMPOPT x" = " x" ; then COMPOPT=$COMPDEF; fi

echo "# Compression support" >> $RULESFILE

case $COMPOPT in
  [nN])
	echo "Using no compression"
	echo "ZDEFS		=" >> $RULESFILE
	echo "ZLIBS		=" >> $RULESFILE
	;;

  [bB])
	echo "Using Bzip2 compression"
	echo "ZDEFS		= -DUSE_BZ2LIB" >> $RULESFILE
	echo "ZLIBS		= -lbz2" >> $RULESFILE
	;;

  [oO])
	echo "Using GZ and Bzip2 compression"
	echo "ZDEFS		= -DUSE_ZLIB -DUSE_BZ2LIB" >> $RULESFILE
	echo "ZLIBS		= -lz -lbz2" >> $RULESFILE
	;;

  *)
	echo "Using GZ compression"
	echo "ZDEFS		= -DUSE_ZLIB" >> $RULESFILE
	echo "ZLIBS		= -lz" >> $RULESFILE
	;;

esac
echo "" >> $RULESFILE


###############################################################################
# Write required information to the file

# May be required on some (older) distributions for libpng and libz!
# extra linker flags and include directory
# -L/usr/lib

LOCAL_LDF=""
LOCAL_IF=""
if test "$HAVE_LIBZ" = 2 ; then
  LOCAL_LDF=" -L\$(TOPDIR)/$LOCAL_ZLIB"
  LOCAL_IF="-I\$(TOPDIR)/$LOCAL_ZLIB"
  if test "$DARWIN" = 1 ; then
    LOCAL_IF="-I\$(TOPDIR)/$LOCAL_ZLIB -I/usr/include -I/usr/include/machine"
  fi
else
  if test "$DARWIN" = 1 ; then
    LOCAL_IF="-I/usr/include -I/usr/include/machine " $LOCAL_IF
  fi
fi

LDF_PNG_PATH=""
IF_PNG_PATH=""
if test "$PNG_LOCAL" = 1 ; then
    LDF_PNG_PATH="-L\$(TOPDIR)/$LOCAL_PNG "
    IF_PNG_PATH="-I\$(TOPDIR)/$LOCAL_PNG "
fi

echo "XLDFLAGS	= -L/usr/X11R6/lib -L/usr/local/lib $LDF_PNG_PATH $LOCAL_LDF" >> $RULESFILE
echo "XIFLAGS		= -I/usr/X11R6/include -I/usr/local/include $IF_PNG_PATH $LOCAL_IF" >> $RULESFILE

echo >> $RULESFILE

# Add the last bits
# below this, nothing should be changed!

echo "#####################################################################" >> $RULESFILE
echo "# Don't change anything below here unless you know what you're doing!" >> $RULESFILE
echo >> $RULESFILE

if [ "$WIN32" = "0" ] ; then
  echo "VERSION=	'$VERSION'" >> $RULESFILE
fi
echo "PROFILE=$PROFILE" >> $RULESFILE
echo >> $RULESFILE

if [ "$BEOS" != 1 ] ; then
  if [ "$DARWIN" != 1 ] ; then
    # Libraries needed to build tools
    echo "TOOLLIBS=\$(XLDFLAGS) -lpng -lz -lm \$(THREADLIB)" >> $RULESFILE

    # Libraries needed to build freecraft
    echo "CLONELIBS=\$(XLDFLAGS) -lpng -lz -lm \\" >> $RULESFILE
    echo "	\$(THREADLIB) \$(CCLLIB) \$(VIDEOLIB) \$(ZLIBS)" >> $RULESFILE
  else
    # Libraries needed to build tools
    echo "TOOLLIBS=\$(XLDFLAGS) -lpng -lz \$(THREADLIB)" >> $RULESFILE

    # Libraries needed to build freecraft
    echo "CLONELIBS=\$(XLDFLAGS) -lpng -lz \\" >> $RULESFILE
    echo "	\$(THREADLIB) \$(CCLLIB) \$(VIDEOLIB) \$(ZLIBS)" >> $RULESFILE
  fi
else
  # Libraries needed to build tools
  echo "TOOLLIBS=\$(XLDFLAGS) -lpng -lz \$(THREADLIB)" >> $RULESFILE

  # Libraries needed to build freecraft
  echo "CLONELIBS=\$(XLDFLAGS) -lpng -lz \\" >> $RULESFILE
  echo "	\$(THREADLIB) \$(CCLLIB) \$(VIDEOLIB) \$(ZLIBS)" >> $RULESFILE
fi


echo "DISTLIST=\$(TOPDIR)/distlist" >> $RULESFILE
echo "TAGS=\$(TOPDIR)/src/tags" >> $RULESFILE

echo >> $RULESFILE
# WIN32
if test "$WIN32" = 1 ; then
  echo "# Win32" >> $RULESFILE
  echo "EXE=.exe" >> $RULESFILE
  echo "OUTFILE=\$(TOPDIR)/freecraft\$(EXE)" >> $RULESFILE
  echo "ARCH=win32" >> $RULESFILE
  echo "OE=o" >> $RULESFILE
else
# LINUX
  echo "# Linux" >> $RULESFILE
  echo "EXE=" >> $RULESFILE
  echo "OUTFILE=\$(TOPDIR)/freecraft" >> $RULESFILE
  echo "ARCH=linux" >> $RULESFILE
  echo "OE=o" >> $RULESFILE
fi

#------------------------------------------------------------------------------
# architecture-dependent objects

echo >> $RULESFILE
echo "#ARCHOBJS=stdmman.\$(OE) svgalib.\$(OE) unix_lib.\$(OE) bitm_lnx.\$(OE)" >> $RULESFILE

# include flags
echo "IFLAGS=	-I\$(TOPDIR)/src/include \$(XIFLAGS)" >> $RULESFILE

# define flags
if test "$DEBUG" = 1 ; then
  echo "DEBUG=	-DDEBUG #-DFLAG_DEBUG" >> $RULESFILE
fi
echo "DFLAGS=	\$(THREAD) \$(CCL) \$(VERSION) \\" >> $RULESFILE
echo "	\$(VIDEO) \$(ZDEFS) \$(DSOUND) \\" >> $RULESFILE
echo -n "	\$(DEBUG)" >> $RULESFILE

echo
echo -n "Are you using the WarCraft 2 Expansion CD? (n): "
read YESORNO
if [ "$YESORNO" = "Y" -o "$YESORNO" = "y" ] ; then
echo -n " -DHAVE_EXPANSION" >> $RULESFILE
fi

echo "" >> $RULESFILE

echo "CFLAGS=$CFLAGS $STATIC $EXTRA_CFLAGS" >> $RULESFILE

## JOHNS: my ctags didn't support
#CTAGSFLAGS=-i defmpstuvFS -a -f

echo "CTAGSFLAGS=-i defptvS -a -f " >> $RULESFILE
echo >> $RULESFILE

#
#	Locks versions with symbolic name

echo "# Locks versions with a symbolic name" >> $RULESFILE
echo "LOCKVER=	rcs -q -n\$(NAME)" >> $RULESFILE
echo >> $RULESFILE

#------------------------------------------------------------------------------

echo "%.o: %.c" >> $RULESFILE
echo "	\$(CC) -c \$(CFLAGS) \$< -o \$@" >> $RULESFILE
echo "	@ar cru \$(TOPDIR)/src/libclone.a \$@" >> $RULESFILE

if [ "$DARWIN" = "1" ] ; then
  echo "	ranlib \$(TOPDIR)/src/libclone.a" >> $RULESFILE
fi

#
# Source code documentation

echo >> $RULESFILE
echo "# Source code documentation" >> $RULESFILE

echo "DOXYGEN=	doxygen" >> $RULESFILE

echo "DOCIFY=		docify" >> $RULESFILE
echo "DOCPP=		doc++" >> $RULESFILE
# Still didn't work
#echo "DOCIFY=		/root/doc++-3.3.11/src/docify" >> $RULESFILE
#echo "DOCPP=		/root/doc++-3.3.11/src/doc++" >> $RULESFILE

echo >> $RULESFILE
echo "%.doc: %.c" >> $RULESFILE
echo "	@\$(TOPDIR)/tools/aledoc \$< | \$(DOCIFY) > \$*-c.doc 2>/dev/null" >> $RULESFILE

echo "%.doc: %.h" >> $RULESFILE
echo "	@\$(TOPDIR)/tools/aledoc \$< | \$(DOCIFY) > \$*-h.doc 2>/dev/null" >> $RULESFILE

#------------------------------------------------------------------------------
# Final comments

echo
echo "Done generating Rules.make."
echo -n "Would you like to compile it now? (y) "
read ANSWER

case $ANSWER in
 [nN])
 	echo
 	echo "Done generating Rules.make.  Type 'make' to compile!"
	;;
 *)
	make depend
	make
	;;

esac