#
 #  Copyright (c) 2009 Mindspeed Technologies, Inc.
 #
 #  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #
#
# To override default toolchain, set environment variable (or edit lines below)

TOOLCHAIN_c100 ?= ARMTOOLS
TOOLCHAIN_c1000 ?= ARMTOOLS
TOOLCHAIN_c2000 ?= GCC

TOOL_PATH_GCC ?= $(HOME)/projects/pfe/eSi-RISC

export TOOLCHAIN_c100 TOOLCHAIN_c1000 TOOLCHAIN_c2000 TOOL_PATH_GCC

