#! /bin/sh
# Generated automatically from mmake.in by configure.
#---------------------------------------------------------------------------#
# Copyright (C) 1995 University of Melbourne.
# This file may only be copied under the terms of the GNU General
# Public License - see the file COPYING in the Mercury distribution.
#---------------------------------------------------------------------------#
#
# mmake - Mercury Make.
#
#	Type mmake -h for help.
#
#-----------------------------------------------------------------------------#

MMAKE_MAKE=${MMAKE_MAKE=make}
MMAKE_DIR=${MMAKE_DIR=/usr/lib/mercury/mmake}
MMAKE_VARS=${MMAKE_VARS=$MMAKE_DIR/Mmake.vars}
MMAKE_RULES=${MMAKE_RULES=$MMAKE_DIR/Mmake.rules}
MERCURY_INT_DIR=${MERCURY_INT_DIR=/usr/lib/mercury/ints}
MERCURY_DEFAULT_GRADE=${MERCURY_DEFAULT_GRADE=asm_fast.gc}

MMAKE=$0
verbose=false
save_makefile=false

while [ $# -gt 0 ]; do
	case $1 in
		-h|--help)
#-----------------------------------------------------------------------------#
			cat << 'EOF'
Usage: mmake [<mmake options>] [-- <make options>] <target>...
Options:
	-s, --save-makefile:
		Save the generated makefile to `Mmake.makefile'.
	-v, --verbose:
		Print verbose progress messages.
	-h, --help:
		Print this usage message.
Targets:
	<module>.depend:
		Make the file `<module>.dep'.  This step is required
		in preparation for the targets below.
	<module>:
		Compile and link a Mercury program with main module
		`<module>.m' to produce an executable.
	<module>.nu:
		Compile and link a Mercury program with NU-Prolog
		rather than with the Mercury compiler.
	<module>.sicstus:
		Compile and link a Mercury program with SICStus Prolog
		rather than with the Mercury compiler.
	<module>.nu.debug:
	<module>.sicstus.debug:
		Debugging versions of the above.
	clean:
		Remove intermediate files.
	realclean:
		Remove all automatically-generated files: intermediate files,
		dependency files, and executables.
EOF
#-----------------------------------------------------------------------------#
			exit
			;;
		-s|--save-makefile)
			save_makefile=true
			MMAKE="$MMAKE $1"
			shift
			;;
		-v|--verbose)
			verbose=true
			MMAKE="$MMAKE $1"
			shift
			;;
		--)	
			MMAKE="$MMAKE $1"
			shift
			break
			;;
		*)
			break
			;;
	esac
done

if [ -f Mmakefile ]; then
	mmake="Mmakefile"
else
	if [ -f Mmake ]; then
		mmake="Mmake"
	else
		mmake=""
	fi
fi
if [ "`echo *.dep`" = "*.dep" ]; then
	deps=""
else
	deps="*.dep"
fi
if [ "`echo *.d`" = "*.d" ]; then
	ds=""
else
	ds="*.d"
fi

if $save_makefile; then
	tmp=Mmake.makefile
else
	tmp=/tmp/mmake.$$
	trap 'status=$?; rm -f $tmp; exit $status' 0 1 2 3 13 15
fi

MMAKE_MAKE_CMD="${MMAKE_MAKE} -f $tmp -r"

if $verbose; then
	echo MMAKE=$MMAKE
	echo export MMAKE
	echo MMAKE_MAKE_CMD=$MMAKE_MAKE_CMD
	echo export MMAKE_MAKE_CMD
	echo MERCURY_INT_DIR=$MERCURY_INT_DIR
	echo export MERCURY_INT_DIR
	echo MERCURY_DEFAULT_GRADE=$MERCURY_DEFAULT_GRADE
	echo export MERCURY_DEFAULT_GRADE
	echo cat ${MMAKE_VARS} $deps $ds $mmake ${MMAKE_RULES} ">" $tmp
	echo ${MMAKE_MAKE} -f $tmp -r "$@"
fi
export MMAKE
export MMAKE_MAKE_CMD
export MERCURY_INT_DIR
export MERCURY_DEFAULT_GRADE
cat ${MMAKE_VARS} $deps $ds $mmake ${MMAKE_RULES} > $tmp
case $# in
	0) ${MMAKE_MAKE} -f $tmp -r ;;
	*) ${MMAKE_MAKE} -f $tmp -r "$@" ;;
esac
