#!/bin/sh # # Minimal Make-Pre-Processor. # Provided to cope with trying to use my makefiles # on systems which don't have GNU make installed. # Supports ifdef,ifndef,else and endif's, nested. # if [ "$1" = "" ] ; then echo "usage: mpp makefile {SYMBOL}" exit fi file=$1 shift if [ `uname -s` = SunOS ] ; then awk=nawk else awk=awk fi $awk ' \ BEGIN { l=1 ; e[1]=1 ; } \ { \ if ( $1 == "ifdef" ) { ++l ; e[l]=e[l-1]&& defined($2) ; } \ else if ( $1 == "ifndef" ) { ++l ; e[l]=e[l-1]&&!defined($2) ; } \ else if ( $1 == "else" ) e[l]=e[l-1]&&!e[l] ; \ else if ( $1 == "endif" ) --l ; \ else if ( e[l] ) print \ } \ function defined(def, defs,i) \ { \ split(tokens,defs) ; \ for ( i in defs ) \ if ( defs[i]==def ) \ return 1 ; \ return 0 ; \ } ' \ tokens="$*" $file