#!/bin/sh

# Copyright (C) 2000-2023 Free Software Foundation, Inc.
# This file is part of GNU Modula-2.
#
# GNU Modula-2 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, or (at your option)
# any later version.
# 
# GNU Modula-2 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 GNU Modula-2; see the file COPYING.  If not, write to the
# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA. 
#

BFLAGS=-B../../../../../../../build-isode/gcc/stage1/gm2
LIBS=-I.:/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/gm2
DRIVER=../../../../../../../build-isode/gcc/xgm2

if [ ! -x $DRIVER ] ; then
   echo "cannot find $DRIVER"
   exit 1
fi
if ! $DRIVER $BFLAGS -v $LIBS -Wcpp -gstabs -c $1 ; then
    exit $?
fi
if ! $DRIVER $BFLAGS $LIBS -Wcpp -S -gstabs -c $1 ; then
    exit $?
fi
if ! $DRIVER $BFLAGS $LIBS -Wcpp -gstabs -I. $1 ; then
    exit $?
fi

