#!/bin/sh # # Maketool - GTK-based front end for gmake # Copyright (c) 1999-2003 Greg Banks # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # Wrapper for non-GNU make programs which emits gmake-style messages on # entering and leaving directories, necessary for tracking which directory # a file belongs to in a recursive build. # dnl The usual m4-around-sh trick for quotes is to use [] but dnl here we need them for ksh array syntax, so use <> changequote(<,>) ME=base if [ -z "$MAKELEVEL" ]; then MAKELEVEL=0 else MAKELEVEL=`expr $MAKELEVEL + 1` fi export MAKELEVEL HERE=`/bin/pwd` if [ $MAKELEVEL -gt 0 ]; then echo $ME"[$MAKELEVEL]: Entering directory \`$HERE'" fi define(,ifelse( base-host_os,,, )) ifelse(smake_hack,,< # Bloody smake will only accept arguments in the order: # options, variable-overrides, targets so we have to # parse and rebuild the options to override $MAKE. # Fortunately on IRIX we know /bin/sh is ksh so we can # use ksh arrays to preserve whitespace. set -A OPTS set -A VOVER set -A TARGS while [ $# -gt 0 ]; do case "$1" in -J*|-n|-k|-q) OPTS[${#OPTS[@]}]="$1" ;; -p|-f) OPTS[${#OPTS[@]}]="$1" OPTS[${#OPTS[@]}]="$2" ;; -*) echo "$ME: unknown option \"$1\" ignoring" ;; *=*) VOVER[${#VOVER[@]}]="$1" ;; *) TARGS[${#TARGS[@]}]="$1" ;; esac done exe "${OPTS[@]}" "${VOVER[@]}" MAKE=$ME "${TARGS[@]}">, ) status=$? if [ $MAKELEVEL -gt 0 ]; then echo $ME"[$MAKELEVEL]: Leaving directory \`$HERE'" fi exit $status