#### Makefile.in --- Makefile template for the M32C simulator

### Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
### Contributed by Red Hat, Inc.
### 
### This file is part of the GNU simulators.
### 
### 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 3 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, see <http://www.gnu.org/licenses/>.

## COMMON_PRE_CONFIG_FRAG

SIM_EXTRA_CFLAGS = -Wall -DTIMER_A

SIM_RUN_OBJS = \
	main.o \
	$(ENDLIST)

SIM_OBJS = \
	gdb-if.o \
	int.o \
	load.o \
	mem.o \
	misc.o \
	reg.o \
	r8c.o \
	m32c.o \
	srcdest.o \
	syscalls.o \
	trace.o \
	$(ENDLIST)

# SIM_EXTRA_ALL = sample.x sample2.x

LIBS = $B/bfd/libbfd.a $B/libiberty/libiberty.a

## COMMON_POST_CONFIG_FRAG

arch = m32c

r8c.c : r8c.opc opc2c
	./opc2c -l r8c.out $(srcdir)/r8c.opc > r8c.c

m32c.c : m32c.opc opc2c
	./opc2c -l m32c.out $(srcdir)/m32c.opc > m32c.c

opc2c : opc2c.o safe-fgets.o
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@

sample.x : $(srcdir)/sample.S $(srcdir)/sample.ld
	../../gcc/xgcc $(CPUFLAGS) -B../../gcc/ -c $(srcdir)/sample.S -o sample.o
	../../ld/ld-new sample.o -o sample.x -T$(srcdir)/sample.ld

sample.mot : sample.x
	../../binutils/objcopy --srec-forceS3 -O srec sample.x sample.mot

sample2.x : sample2.o gloss.o $(srcdir)/sample.ld
	../../ld/ld-new sample2.o gloss.o -o sample2.x -T$(srcdir)/sample.ld

sample2.o : $(srcdir)/sample2.c
	../../gcc/xgcc $(CPUFLAGS) -B../../gcc/ -c $(srcdir)/sample2.c -o sample2.o

gloss.o : $(srcdir)/gloss.S
	../../gcc/xgcc $(CPUFLAGS) -B../../gcc/ -c $(srcdir)/gloss.S -o gloss.o

encodings:
	grep '/\* [01]' $(srcdir)/r8c.opc | sort

gdb-if.o : cpu.h mem.h load.h syscalls.h
int.o : int.h cpu.h mem.h
load.o : load.h cpu.h mem.h
main.o : cpu.h mem.h misc.h load.h
mem.o : mem.h cpu.h syscalls.h
misc.o : cpu.h misc.h
opc2c.o : safe-fgets.h
reg.o : cpu.h
safe-fgets.o : safe-fgets.h
srcdest.c : cpu.h mem.h
syscalls.c : cpu.h mem.h syscalls.h

r8c.o : cpu.h mem.h misc.h int.h
