#! /bin/sh # @configure_input@ #---------------------------------------------------------------------------# # Copyright (C) 1995-1997 The 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. # #-----------------------------------------------------------------------------# # IMPORTANT: the manpage is produced automatically from this help # message, so if you change the help message, don't forget to check # that the manpage still looks OK. Help="\ Name: mmake -- Mercury Make Usage: mmake [] [-- ] ... Options: -s, --save-makefile: Save the generated makefile to \`Mmake.makefile'. This is useful for tracking down syntax errors in your Mmake file. -v, --verbose: Print verbose progress messages. -h, --help: Print this usage message. Targets: .depend: Make the file \`.dep'. This step is required in preparation for the targets below. : Compile and link a Mercury program with main module \`.m' to produce an executable. .nu: Compile and link a Mercury program with NU-Prolog rather than with the Mercury compiler. .sicstus: Compile and link a Mercury program with SICStus Prolog rather than with the Mercury compiler. .nu.debug: .sicstus.debug: Debugging versions of the above. clean: Remove intermediate files. realclean: Remove all automatically-generated files: intermediate files, dependency files, and executables. " MMAKE_MAKE=${MMAKE_MAKE=@GNU_MAKE@} MMAKE_DIR=${MMAKE_DIR=@LIBDIR@/mmake} MMAKE_VARS=${MMAKE_VARS=$MMAKE_DIR/Mmake.vars} MMAKE_RULES=${MMAKE_RULES=$MMAKE_DIR/Mmake.rules} MERCURY_INT_DIR=${MERCURY_INT_DIR=@LIBDIR@/ints} MERCURY_DEFAULT_GRADE=${MERCURY_DEFAULT_GRADE=@DEFAULT_GRADE@} MMAKE=$0 verbose=false save_makefile=false while [ $# -gt 0 ]; do case $1 in -h|--help) echo "$Help" exit 0 ;; -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 # Note that we can't use `exec' here, because if we did that, # that `trap' code which removes $tmp would never get executed. 0) ${MMAKE_MAKE} -f $tmp -r ;; *) ${MMAKE_MAKE} -f $tmp -r "$@" ;; esac