top_srcdir=.
include config.mk

SUBDIRS=boards devices ppc mips m16c c16x 6510 z80 8051 m68k lightmaze

.PHONY: $(SUBDIRS)  subdirs depend

INCLUDES=-I.
SRCFILES=pl190_irq.c ns9xxx_i2c.c arm_vfp.c \
	xy_tree.c xy_hash.c bus.c signode.c \
	ste10_100.c m93c46.c linux-tap.c fio.c socket_can.c \
	sja1000.c dram.c sram.c amdflash.c lacc_can.c usb_ohci.c cycletimer.c \
	configfile.c lxt971a.c ml6652.c cmdedit.c debugserver.c interpreter.c \
	loader.c i2c_serdes.c m24cxx.c pcf8563.c i82559.c\
	pcf8575.c pcf8574.c telnetd.c pc16550.c pca9544.c max6651.c lm75.c pcf8591.c \
	ads7828.c ihex.c srec.c shlib.c mainloop_events.c gdebug.c  diskimage.c \
	lpcflash.c lpc2106_timer.c debugvars.c lpc2106_gpio.c lpc2106_scb.c \
	imx21_uart.c aitc.c imx_timer.c imx21_lcdc.c imx21_crm.c serial.c cs8900.c \
	imx21_gpio.c isp1301.c imx21_otg.c imx21_sdhc.c imx21_dmac.c mmcard.c \
	clock.c imx21_eim.c imx21_wdog.c imx21_sdrc.c imx21_rtc.c rfbserver.c \
	imx21_cspi.c ds1305.c sht71.c imx21_pwm.c keyboard.c matrix_keyboard.c \
	imx21_i2c.c

ARM_SRC=arm9cpu.c idecode.c mmu.c instructions.c 

OBJS = $(SRCFILES:.c=.o)
OBJS_BE=$(SCRFILES:.c=.be.o)
ARM_OBJS = $(ARM_SRC:.c=.o)

NS9xxx_SRC=$(SRCFILES) $(ARM_SRC) ns9750_mem.c ns9750_serial.c ns9750_timer.c \
		ns9750_bbus.c ns9750_pci.c \
		ns9750_usb.c ns9750_eth.c ns9750_bbdma.c

NS9xxxOBJS = $(NS9xxx_SRC:.c=.o)

NS9xxxOBJS_BE = $(NS9xxx_SRC:.c=.be.o)


all: subdirs softgun 

subdirs:
	@for dir in $(SUBDIRS); do \
		if [ -d $$dir ]; then \
			make -C $$dir all; \
		fi; \
	done
	

install: softgun
	install -m 755 softgun $(bindir) 
	@for dir in $(SUBDIRS); do \
		if [ -d $$dir ]; then \
			make -C $$dir install; \
		fi; \
	done
	
softgun: $(NS9xxxOBJS) softgun.o boards/libboards.a
	$(CC) $(CFLAGS) $(NS9xxxOBJS) softgun.o boards/libboards.a -o $@ $(LDFLAGS)

softgun_be: $(NS9xxxOBJS_BE) softgun.o boards/libboards.a
	$(CC) $(CFLAGS) $(NS9xxxOBJS_BE) softgun.o boards/libboards.a -o $@ $(LDFLAGS)

boards/libboards.a:
	make -C boards libboards.a

depend:
	

clean:
	rm -f *.o *.a softgun softgun_be 
	@for dir in $(SUBDIRS); do \
		if [ -d $$dir ]; then \
			make -C $$dir clean; \
		fi; \
	done 
