#	       Makefile for SkyEye-V1.x
#------------------------------------------------------------------------	       
#    Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
#    Written by Cygnus Support.
# 
# 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.
# -------------------------------------------------------------------------
# Author Chen Yu <yuchen@tsinghua.edu.cn>

#if you want to add DBCT Acceleration Function In X86 32bit system AND gcc version = 3.x.x, comment below line
NO_DBCT = 1

prefix = /usr/local
exec_prefix = ${prefix}

host_alias = i686-pc-cygwin
target_alias = arm-elf
program_transform_name = s,^,arm-elf-,; 
bindir = ${exec_prefix}/bin


EXEEXT = .exe
SHELL = /bin/sh

INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644

#CC = gcc-3.3
CC = gcc
#CC = gcc-4.0
CC_FOR_BUILD = $(CC)

AR = ar
AR_FLAGS = rc
RANLIB = ranlib
MAKEINFO = makeinfo

SUPPORT_ARCH_DEF = -DARM

ARCH_ARM_CFLAGS = -I arch/arm -I arch/arm/common/ -I arch/arm/common/mmu/ -I arch/arm/mach/
ARCH_BLACKFIN_CFLAGS = -I arch/bfin/common -I arch/bfin/mach
ARCH_COLDFIRE_CFLAGS = -I arch/coldfire/common
DEVICE_CFLAGS = -I device/ -I device/net -I device/lcd -I device/flash
UTILS_CFLAGS = -I utils/share -I utils/main -I utils/config -I utils/debugger
SIM_EXTRA_CFLAGS = -DMODET $(ARCH_ARM_CFLAGS) $(ARCH_BLACKFIN_CFLAGS) $(ARCH_COLDFIRE_CFLAGS) $(DEVICE_CFLAGS) $(UTILS_CFLAGS) 
SIM_EXTRA_LIBS = `pkg-config gtk+-2.0 --libs`
#for debug
#CFLAGS = -g    -DSTANDALONE -DDEFAULT_INLINE=0  -DMODET $(SIM_EXTRA_CFLAGS) $(SUPPORT_ARCH_DEF) -I. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
#for speed
CFLAGS = -g -O2 -DSTANDALONE -DDEFAULT_INLINE=0  -DMODET $(SIM_EXTRA_CFLAGS) $(SUPPORT_ARCH_DEF) -I. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  

ARM_COMMON_PATH= arch/arm/common
ARM_DBCT_PATH= arch/arm/dbct
ARM_MACH_PATH= arch/arm/mach

BFIN_COMMON_PATH= arch/bfin/common
BFIN_MACH_PATH=arch/bfin/mach
BFIN_DBCT_PATH=arch/bfin/dbct

UTILS_PATH =utils
DEVICE_PATH=device
#ARM2X86_C_FILES = arm2x86.c arm2x86_dp.c arm2x86_mem.c arm2x86_movl.c arm2x86_mul.c arm2x86_other.c arm2x86_psr.c arm2x86_shift.c arm2x86_test.c arm2x86_coproc.c tb.c
ARM2X86_H_FILES = $(ARM_DBCT_PATH)/arm2x86.h $(ARM_DBCT_PATH)/arm2x86_dp.h $(ARM_DBCT_PATH)/arm2x86_mem.h $(ARM_DBCT_PATH)/arm2x86_movl.h $(ARM_DBCT_PATH)/arm2x86_mul.h $(ARM_DBCT_PATH)/arm2x86_other.h $(ARM_DBCT_PATH)/arm2x86_psr.h $(ARM_DBCT_PATH)/arm2x86_shift.h $(ARM_DBCT_PATH)/arm2x86_test.h $(ARM_DBCT_PATH)/arm2x86_coproc.h $(ARM_DBCT_PATH)/arm2x86_self.h $(ARM_DBCT_PATH)/tb.h
ifdef NO_DBCT
ARM2X86_O_FILES = 
CFLAGS += -DNO_DBCT
else
ARM2X86_O_FILES = binary/arm2x86.o binary/arm2x86_dp.o binary/arm2x86_mem.o binary/arm2x86_movl.o binary/arm2x86_mul.o binary/arm2x86_other.o binary/arm2x86_psr.o binary/arm2x86_shift.o binary/arm2x86_test.o binary/arm2x86_coproc.o binary/tb.o
ARM2X86_CFLAGS  = -DDEFAULT_INLINE=0           -DMODET -I. $(ARCH_ARM_CFLAGS) $(DEVICE_CFLAGS) $(UTILS_CFLAGS) -g -O
endif

SIM_ARM_OBJS =  binary/armcopro.o binary/armemu26.o binary/armemu32.o binary/arminit.o  binary/armsupp.o binary/armos.o binary/thumbemu.o binary/armvirt.o  binary/armmmu.o binary/armmem.o binary/armio.o  binary/arm_arch_interface.o
BFIN_DBCT_OBJS = binary/bfin_tb.o binary/dbct_step.o binary/bfin2x86_load_store.o binary/bfin2x86_move.o binary/bfin2x86_arith.o
BFIN_COMMON_OBJS = binary/bfin_arch_interface.o binary/iomem.o binary/bfin-dis.o
BFIN_MACH_OBJS = binary/bf533_io.o
SIM_BFIN_OBJS =  $(BFIN_COMMON_OBJS) $(BFIN_MACH_OBJS) \
		#$(BFIN_DBCT_OBJS)


SIM_MMU_OBJS =  binary/tlb.o binary/cache.o binary/rb.o binary/wb.o \
		binary/sa_mmu.o binary/arm7100_mmu.o  binary/arm920t_mmu.o binary/arm926ejs_mmu.o\
		binary/maverick.o binary/xscale_copro.o 

SIM_MACH_OBJS = binary/skyeye_mach_at91.o binary/skyeye_mach_s3c4510b.o binary/skyeye_mach_s3c44b0.o \
		binary/skyeye_mach_ep7312.o binary/skyeye_mach_sa.o binary/skyeye_mach_cs89712.o \
		binary/skyeye_mach_ep9312.o binary/skyeye_mach_at91rm92.o binary/skyeye_mach_lh79520.o \
		binary/skyeye_mach_s3c2410x.o binary/skyeye_mach_s3c2440.o binary/skyeye_mach_ps7500.o \
		binary/skyeye_mach_sharp.o binary/skyeye_mach_lpc.o \
		binary/skyeye_mach_pxa250.o binary/skyeye_mach_pxa270.o binary/skyeye_mach_ns9750.o \
		binary/skyeye_mach_lpc2210.o	

ifdef NO_NET
SIM_NET_OBJS =
CFLAGS += -DNO_NET
else
SIM_NET_OBJS =  binary/skyeye_net.o binary/skyeye_net_tuntap.o binary/skyeye_net_vnet.o \
		binary/dev_net_rtl8019.o binary/dev_net_cs8900a.o binary/dev_net_s3c4510b.o
endif

ifdef NO_BFD
CFLAGS += -DNO_BFD
BFD_LIBS = 
else
BFD_LIBS = -lbfd -liberty
endif

ifdef STATIC
CFLAGS += -static
endif

ifdef NO_LCD
SIM_LCD_OBJS =  
CFLAGS += -DNO_LCD
SIM_EXTRA_LIBS = 
else
SIM_LCD_OBJS =  binary/skyeye_lcd.o binary/skyeye_lcd_gtk.o \
		binary/dev_lcd_ep7312.o binary/dev_lcd_pxa.o binary/dev_lcd_s3c2410.o
endif

SIM_FLASH_OBJS= binary/armflash.o binary/skyeye_flash.o binary/dev_flash_intel.o

SIM_DEVICE_OBJS = binary/skyeye_device.o $(SIM_NET_OBJS) $(SIM_LCD_OBJS) $(SIM_FLASH_OBJS)

SIM_UTILS_OBJS = binary/skyeye2gdb.o binary/arch_reg.o binary/skyeye_config.o binary/skyeye_options.o binary/skyeye_stub_win32.o binary/skyeye.o binary/skyeye_arch.o

SIM_ARM = $(SIM_ARM_OBJS) \
	$(SIM_MMU_OBJS) \
	$(ARM2X86_O_FILES) \
	$(SIM_MACH_OBJS)  \

SIM_DEV_OBJS = $(SIM_DEVICE_OBJS)

SIM_UTILS = $(SIM_UTILS_OBJS)



ALL_CFLAGS = $(CFLAGS)
BUILD_CFLAGS = -g -O 

COMMON_DEP_CFLAGS = 

CONFIG_LIBS =  -Wl,--export-dynamic -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lXft -lfreetype -lz -lXrender -lXext -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv  

LIB_OBJS = $(SIM_OBJS)

all:  binary/skyeye
clean: $(SIM_EXTRA_CLEAN)
	rm -f binary/*.o
	rm -f binary/*.a
	rm -f binary/skyeye
	make -C arch/coldfire clean

distclean mostlyclean maintainer-clean realclean: clean
	rm -f TAGS tags
	rm -f binary/*
binary/libdev.a: $(SIM_DEV_OBJS)
	rm -f binary/libdev.a
	$(AR) $(AR_FLAGS) binary/libdev.a $(SIM_DEV_OBJS)
	$(RANLIB) binary/libdev.a

binary/libutils.a: $(SIM_UTILS)
	rm -f binary/libutils.a
	$(AR) $(AR_FLAGS) binary/libutils.a $(SIM_UTILS)
	$(RANLIB) binary/libutils.a

binary/libarm.a: $(SIM_ARM)
	rm -f binary/libarm.a
	$(AR) $(AR_FLAGS) binary/libarm.a $(SIM_ARM)
	$(RANLIB) binary/libarm.a

#generate lib for bfin architecture
binary/libbfin.a: $(SIM_BFIN_OBJS)
	rm -f binary/libbfin.a
	$(AR) $(AR_FLAGS) binary/libbfin.a $(SIM_BFIN_OBJS)
	$(RANLIB) binary/libbfin.a

#generate lib for coldfire architecture
SIM_CF_OBJS = binary/cf_arch_interface.o
CF_PATH = arch/coldfire/
CF_COMMON_PATH = arch/coldfire/common/
COLDFIRE_FLAG = -I arch/coldire/tracer
binary/libcoldfire.a:$(SIM_CF_OBJS) 
	make -C arch/coldfire
	$(AR) $(AR_FLAGS) binary/libcoldfire.a $(SIM_CF_OBJS) $(CF_COMMON_PATH)/*.o $(CF_PATH)/tracer/tracer.o $(CF_PATH)/i_5206/i.o
	$(RANLIB) binary/libcoldfire.a


BFIN_LIB=-Lbinary -lutils -larm -ldev -lbfin -lcoldfire


binary/skyeye: binary/libarm.a binary/skyeye.o binary/libbfin.a binary/libdev.a binary/libutils.a binary/libcoldfire.a
#teawater add for load elf 2005.07.31------------------------------------------
ifeq ($(TERM),cygwin)
	$(CC) $(ALL_CFLAGS) -o binary/skyeye binary/skyeye.o --start-group  $(BFIN_LIB) -lc $(BFD_LIBS) -lintl -liconv --end-group $(SIM_EXTRA_LIBS)
else
ifeq ($(OS),Windows_NT)
	$(CC) $(ALL_CFLAGS) -o binary/skyeye binary/skyeye.o --start-group  $(BFIN_LIB) -lc $(BFD_LIBS) -lintl -liconv --end-group $(SIM_EXTRA_LIBS)
else
	$(CC) $(ALL_CFLAGS) -o binary/skyeye binary/skyeye.o --start-group  $(SIM_EXTRA_LIBS) $(BFIN_LIB) $(BFD_LIBS) --end-group
endif
endif
#AJ2D--------------------------------------------------------------------------

binary/skyeye.o: utils/main/skyeye.c
	$(CC) -c $< -o $@ $(ALL_CFLAGS)

binary/skyeye2gdb.o: utils/debugger/skyeye2gdb.c
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/arch_reg.o: utils/debugger/arch_reg.c
	$(CC) -c $< -o $@ $(ALL_CFLAGS)

.c.o:
	$(CC) -c $(ALL_CFLAGS) $<

binary/arm2x86.o: $(ARM_DBCT_PATH)/arm2x86.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_dp.o: $(ARM_DBCT_PATH)/arm2x86_dp.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_mem.o: $(ARM_DBCT_PATH)/arm2x86_mem.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_movl.o: $(ARM_DBCT_PATH)/arm2x86_movl.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_mul.o: $(ARM_DBCT_PATH)/arm2x86_mul.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_other.o: $(ARM_DBCT_PATH)/arm2x86_other.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_psr.o: $(ARM_DBCT_PATH)/arm2x86_psr.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_shift.o: $(ARM_DBCT_PATH)/arm2x86_shift.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_test.o: $(ARM_DBCT_PATH)/arm2x86_test.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/arm2x86_coproc.o: $(ARM_DBCT_PATH)/arm2x86_coproc.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ARM2X86_CFLAGS)
binary/tb.o: $(ARM_DBCT_PATH)/tb.c $(ARM_COMMON_PATH)/armdefs.h $(ARM2X86_H_FILES)
	$(CC) -c $< -o $@ $(ALL_CFLAGS)

binary/armemu26.o: $(ARM_COMMON_PATH)/armemu.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armemu.h 
	$(CC) -c $< -o binary/armemu26.o  $(ALL_CFLAGS)
binary/armemu32.o: $(ARM_COMMON_PATH)/armemu.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armemu.h
	$(CC) -c $< -o binary/armemu32.o -DMODE32 $(ALL_CFLAGS)
binary/armos.o: $(ARM_COMMON_PATH)/armos.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armos.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armcopro.o: $(ARM_COMMON_PATH)/armcopro.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/arminit.o: $(ARM_COMMON_PATH)/arminit.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armemu.h $(ARM_DBCT_PATH)/arm2x86.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armsupp.o: $(ARM_COMMON_PATH)/armsupp.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armemu.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/thumbemu.o: $(ARM_COMMON_PATH)/thumbemu.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_COMMON_PATH)/armemu.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armio.o:	$(ARM_COMMON_PATH)/armio.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h 
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armmem.o:	$(ARM_COMMON_PATH)/armmem.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h $(ARM_DBCT_PATH)/tb.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armmmu.o:	$(ARM_COMMON_PATH)/armmmu.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h 
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/armvirt.o:	$(ARM_COMMON_PATH)/armvirt.c $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmmu.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h 
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/skyeye_stub_win32.o: $(UTILS_PATH)/stub/skyeye_stub_win32.c $(ARM_COMMON_PATH)/armdefs.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/skyeye_config.o: $(UTILS_PATH)/config/skyeye_config.c $(UTILS_PATH)/config/skyeye_config.h $(ARM_COMMON_PATH)/armdefs.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/skyeye_options.o: $(UTILS_PATH)/config/skyeye_options.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armmem.h $(ARM_COMMON_PATH)/armio.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/skyeye_arch.o:$(UTILS_PATH)/config/skyeye_arch.c
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/arm_arch_interface.o:	$(ARM_COMMON_PATH)/arm_arch_interface.c
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
#SIM_MMU_OBJS
binary/arm7100_mmu.o: $(ARM_COMMON_PATH)/mmu/arm7100_mmu.c $(ARM_COMMON_PATH)/mmu/arm7100_mmu.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/arm920t_mmu.o: $(ARM_COMMON_PATH)/mmu/arm920t_mmu.c $(ARM_COMMON_PATH)/mmu/arm920t_mmu.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/arm926ejs_mmu.o: $(ARM_COMMON_PATH)/mmu/arm926ejs_mmu.c $(ARM_COMMON_PATH)/mmu/arm926ejs_mmu.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/sa_mmu.o: $(ARM_COMMON_PATH)/mmu/sa_mmu.c $(ARM_COMMON_PATH)/mmu/sa_mmu.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/xscale_copro.o: $(ARM_COMMON_PATH)/mmu/xscale_copro.c 
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/maverick.o: $(ARM_COMMON_PATH)/mmu/maverick.c $(ARM_COMMON_PATH)/armdefs.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/tlb.o:  $(ARM_COMMON_PATH)/mmu/tlb.c $(ARM_COMMON_PATH)/mmu/tlb.h
	$(CC)  -c $< -o $@ $(ALL_CFLAGS)
binary/cache.o:        $(ARM_COMMON_PATH)/mmu/cache.c $(ARM_COMMON_PATH)/mmu/cache.h
	$(CC)  -c $< -o $@ $(ALL_CFLAGS)
binary/rb.o:   $(ARM_COMMON_PATH)/mmu/rb.c $(ARM_COMMON_PATH)/mmu/rb.h
	$(CC)  -c $< -o $@ $(ALL_CFLAGS)
binary/wb.o:   $(ARM_COMMON_PATH)/mmu/wb.c $(ARM_COMMON_PATH)/mmu/wb.h
	$(CC)  -c $< -o $@ $(ALL_CFLAGS)



#SIM_MACH_OBJS

binary/skyeye_mach_at91.o: $(ARM_MACH_PATH)/skyeye_mach_at91.c  $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/at91.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_ep7312.o: $(ARM_MACH_PATH)/skyeye_mach_ep7312.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/clps7110.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_ps7500.o: $(ARM_MACH_PATH)/skyeye_mach_ps7500.c $(UTILS_PATH)/config/skyeye_config.h \
                        $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/ps7500.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_lh79520.o: $(ARM_MACH_PATH)/skyeye_mach_lh79520.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/lh79520.h $(ARM_MACH_PATH)/lh79520-hardware.h \
			$(ARM_MACH_PATH)/lh79520_irq.h $(ARM_MACH_PATH)/serial_amba_pl011.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@

binary/skyeye_mach_cs89712.o: $(ARM_MACH_PATH)/skyeye_mach_cs89712.c $(UTILS_PATH)/config/skyeye_config.h \
                        $(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/clps7110.h $(ARM_MACH_PATH)/ep7212.h $(ARM_MACH_PATH)/cs89712.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@

binary/skyeye_mach_ep9312.o: $(ARM_MACH_PATH)/skyeye_mach_ep9312.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/clps9312.h $(ARM_MACH_PATH)/ep9312.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_s3c4510b.o: $(ARM_MACH_PATH)/skyeye_mach_s3c4510b.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/s3c4510b.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_s3c44b0.o: $(ARM_MACH_PATH)/skyeye_mach_s3c44b0.c $(UTILS_PATH)/config/skyeye_config.h \
			$(ARM_COMMON_PATH)/armdefs.h $(ARM_COMMON_PATH)/armio.h $(ARM_MACH_PATH)/s3c44b0.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_sa.o: $(ARM_MACH_PATH)/skyeye_mach_sa.c $(ARM_MACH_PATH)/sa1100.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_at91rm92.o: $(ARM_MACH_PATH)/skyeye_mach_at91rm92.c $(ARM_MACH_PATH)/at91rm92.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_s3c2410x.o: $(ARM_MACH_PATH)/skyeye_mach_s3c2410x.c $(ARM_MACH_PATH)/s3c2410x.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_s3c2440.o: $(ARM_MACH_PATH)/skyeye_mach_s3c2440.c $(ARM_MACH_PATH)/s3c2440.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_sharp.o: $(ARM_MACH_PATH)/skyeye_mach_sharp.c $(ARM_MACH_PATH)/sharp.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_pxa250.o: $(ARM_MACH_PATH)/skyeye_mach_pxa250.c $(ARM_MACH_PATH)/pxa.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_pxa270.o: $(ARM_MACH_PATH)/skyeye_mach_pxa270.c $(ARM_MACH_PATH)/pxa.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_lpc.o: $(ARM_MACH_PATH)/skyeye_mach_lpc.c $(ARM_MACH_PATH)/lpc.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_ns9750.o: $(ARM_MACH_PATH)/skyeye_mach_ns9750.c $(ARM_MACH_PATH)/ns9750.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_mach_lpc2210.o: $(ARM_MACH_PATH)/skyeye_mach_lpc2210.c $(ARM_MACH_PATH)/lpc.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@


#SIM_DEVICE_OBJS
binary/skyeye_device.o: $(DEVICE_PATH)/skyeye_device.c $(DEVICE_PATH)/skyeye_device.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
#SIM_FLASH_OBJS	
binary/armflash.o:     $(DEVICE_PATH)/flash/armflash.c $(DEVICE_PATH)/flash/armflash.h $(ARM_COMMON_PATH)/armdefs.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/skyeye_flash.o: $(DEVICE_PATH)/flash/skyeye_flash.c $(DEVICE_PATH)/flash/skyeye_flash.h $(ARM_COMMON_PATH)/armdefs.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
binary/dev_flash_intel.o:$(DEVICE_PATH)/flash/dev_flash_intel.c $(DEVICE_PATH)/flash/dev_flash_intel.h
	$(CC) -c $< -o $@ $(ALL_CFLAGS)
#SIM_NET_OBJS
binary/dev_net_%.o: $(DEVICE_PATH)/net/dev_net_%.c $(DEVICE_PATH)/net/dev_net_%.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_net.o: $(DEVICE_PATH)/net/skyeye_net.c $(DEVICE_PATH)/net/skyeye_net.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_net_%.o: $(DEVICE_PATH)/net/skyeye_net_%.c $(DEVICE_PATH)/net/skyeye_net.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@

#SIM_LCD_OBJS
binary/dev_lcd_%.o: $(DEVICE_PATH)/lcd/dev_lcd_%.c $(DEVICE_PATH)/lcd/dev_lcd_%.h
	$(CC) -g -O2 $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_lcd.o: $(DEVICE_PATH)/lcd/skyeye_lcd.c $(DEVICE_PATH)/lcd/skyeye_lcd.h
	$(CC) -g -O2 $(ALL_CFLAGS) -c $< -o $@
binary/skyeye_lcd_gtk.o: $(DEVICE_PATH)/lcd/skyeye_lcd_gtk.c $(DEVICE_PATH)/lcd/skyeye_lcd.h
	$(CC) -g -O2 $(ALL_CFLAGS) -c $< -o $@ `pkg-config gtk+-2.0 --cflags`

#SIM_BFIN_OBJS
binary/bf533_io.o: $(BFIN_MACH_PATH)/bf533_io.c $(BFIN_MACH_PATH)/bf533_io.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/bfin-dis.o: $(BFIN_COMMON_PATH)/bfin-dis.c $(BFIN_COMMON_PATH)/bfin-sim.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/iomem.o: $(BFIN_COMMON_PATH)/iomem.c $(BFIN_COMMON_PATH)/bfin-sim.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/bfin_arch_interface.o: $(BFIN_COMMON_PATH)/bfin_arch_interface.c $(BFIN_COMMON_PATH)/bfin-sim.h
	$(CC)  $(ALL_CFLAGS) -c $< -o $@
binary/bfin_tb.o: $(BFIN_DBCT_PATH)/bfin_tb.c
	$(CC) $(ALL_CFLAGS) -c $< -o $@
binary/dbct_step.o: $(BFIN_DBCT_PATH)/dbct_step.c
	$(CC) $(ALL_CFLAGS) -c $< -o $@
binary/bfin2x86_load_store.o:$(BFIN_DBCT_PATH)/bfin2x86_load_store.c
	$(CC) $(ALL_CFLAGS) -c $< -o $@
binary/bfin2x86_move.o:$(BFIN_DBCT_PATH)/bfin2x86_move.c
	$(CC) $(ALL_CFLAGS) -c $< -o $@
binary/bfin2x86_arith.o:$(BFIN_DBCT_PATH)/bfin2x86_arith.c
	$(CC) $(ALL_CFLAGS) -c $< -o $@
binary/cf_arch_interface.o:$(CF_COMMON_PATH)/cf_arch_interface.c
	$(CC) $(ALL_CFLAGS) $(COLDFIRE_FLAG) -c $< -o $@

