#
# arch/m68k/Makefile
#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "COPYING" in the main directory of this archive
# for more details.
#
# (C) Copyright 2002, Greg Ungerer <gerg@snapgear.com>
#

platform-$(CONFIG_M68328)	:= 68328
platform-$(CONFIG_M68EZ328)	:= 68EZ328
platform-$(CONFIG_M68VZ328)	:= 68VZ328
platform-$(CONFIG_M68360)	:= 68360
platform-$(CONFIG_M5206)	:= 5206
platform-$(CONFIG_M5206e)	:= 5206e
platform-$(CONFIG_M520x)	:= 520x
platform-$(CONFIG_M523x)	:= 523x
platform-$(CONFIG_M5249)	:= 5249
platform-$(CONFIG_M527x)	:= 527x
platform-$(CONFIG_M5272)	:= 5272
platform-$(CONFIG_M528x)	:= 528x
platform-$(CONFIG_M5307)	:= 5307
platform-$(CONFIG_M532x)	:= 532x
platform-$(CONFIG_M5407)	:= 5407
platform-$(CONFIG_M54xx)	:= 54xx
PLATFORM := $(platform-y)

board-$(CONFIG_PILOT)		:= pilot
board-$(CONFIG_UC5272)          := UC5272
board-$(CONFIG_UC5282)          := UC5282
board-$(CONFIG_UCSIMM)		:= ucsimm
board-$(CONFIG_UCDIMM)		:= ucdimm
board-$(CONFIG_UCQUICC)		:= uCquicc
board-$(CONFIG_DRAGEN2)		:= de2
board-$(CONFIG_ARNEWSH)		:= ARNEWSH
board-$(CONFIG_FREESCALE)	:= FREESCALE
board-$(CONFIG_M5235EVB)	:= M5235EVB
board-$(CONFIG_M5271EVB)	:= M5271EVB
board-$(CONFIG_M5275EVB)	:= M5275EVB
board-$(CONFIG_M5282EVB)	:= M5282EVB
board-$(CONFIG_ELITE)		:= eLITE
board-$(CONFIG_NETtel)		:= NETtel
board-$(CONFIG_SECUREEDGEMP3)	:= MP3
board-$(CONFIG_CLEOPATRA)	:= CLEOPATRA
board-$(CONFIG_senTec)		:= senTec
board-$(CONFIG_SNEHA) 	        := SNEHA
board-$(CONFIG_M5208EVB)	:= M5208EVB
board-$(CONFIG_MOD5272)		:= MOD5272
board-$(CONFIG_AVNET)           := AVNET
board-$(CONFIG_SAVANT)		:= SAVANT
BOARD := $(board-y)

model-$(CONFIG_RAMKERNEL)	:= ram
model-$(CONFIG_ROMKERNEL)	:= rom
MODEL := $(model-y)

#
# Some code support is grouped together for a common cpu-subclass (for
# example all ColdFire cpu's are very similar). Determine the sub-class
# for the selected cpu. ONLY need to define this for the non-base member
# of the family.
#
cpuclass-$(CONFIG_M5206)	:= coldfire
cpuclass-$(CONFIG_M5206e)	:= coldfire
cpuclass-$(CONFIG_M520x)	:= coldfire
cpuclass-$(CONFIG_M523x)	:= coldfire
cpuclass-$(CONFIG_M5249)	:= coldfire
cpuclass-$(CONFIG_M527x)	:= coldfire
cpuclass-$(CONFIG_M5272)	:= coldfire
cpuclass-$(CONFIG_M528x)	:= coldfire
cpuclass-$(CONFIG_M5307)	:= coldfire
cpuclass-$(CONFIG_M532x)	:= coldfire
cpuclass-$(CONFIG_M5407)	:= coldfire
cpuclass-$(CONFIG_M54xx)	:= coldfire
cpuclass-$(CONFIG_M68328)	:= 68328
cpuclass-$(CONFIG_M68EZ328)	:= 68328
cpuclass-$(CONFIG_M68VZ328)	:= 68328
cpuclass-$(CONFIG_M68360)	:= 68360
CPUCLASS := $(cpuclass-y)

ifneq ($(CPUCLASS),$(PLATFORM))
CLASSDIR := arch/m68k/platform/$(cpuclass-y)/
endif

export PLATFORM BOARD MODEL CPUCLASS

#
# Some CFLAG additions based on specific CPU type.
#
cflags-$(CONFIG_M5206)		:= $(call cc-option,-mcpu=5206,-m5200)
cflags-$(CONFIG_M5206e)		:= $(call cc-option,-mcpu=5206e,-m5200)
cflags-$(CONFIG_M520x)		:= $(call cc-option,-mcpu=5208,-m5200)
cflags-$(CONFIG_M523x)		:= $(call cc-option,-mcpu=523x,-m5307)
cflags-$(CONFIG_M5249)		:= $(call cc-option,-mcpu=5249,-m5200)
cflags-$(CONFIG_M5271)		:= $(call cc-option,-mcpu=5271,-m5307)
cflags-$(CONFIG_M5272)		:= $(call cc-option,-mcpu=5272,-m5307)
cflags-$(CONFIG_M5275)		:= $(call cc-option,-mcpu=5275,-m5307)
cflags-$(CONFIG_M528x)		:= $(call cc-option,-mcpu=528x,-m5307)
cflags-$(CONFIG_M5307)		:= $(call cc-option,-mcpu=5307,-m5200)
cflags-$(CONFIG_M532x)		:= $(call cc-option,-mcpu=532x,-m5307)
cflags-$(CONFIG_M5407)		:= $(call cc-option,-mcpu=5407,-m5200)
cflags-$(CONFIG_M54xx)		:= $(call cc-option,-mcpu=5475,-m5200)
cflags-$(CONFIG_M68328)		:= -m68000
cflags-$(CONFIG_M68EZ328)	:= -m68000
cflags-$(CONFIG_M68VZ328)	:= -m68000
cflags-$(CONFIG_M68360)		:= -m68332

KBUILD_AFLAGS += $(cflags-y)

KBUILD_CFLAGS += $(cflags-y)
KBUILD_CFLAGS += -D__linux__
KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\"

head-y := arch/m68k/platform/$(cpuclass-y)/head.o

core-y	+= arch/m68k/kernel/ \
	   arch/m68k/mm/ \
	   $(CLASSDIR) \
	   arch/m68k/platform/$(PLATFORM)/
libs-y	+= arch/m68k/lib/

archclean:

