#SHELL = /bin/sh

LIBS = ../lib/libi8k.a
CFLAGS = -I. -I../include 
#CFLAGS = -msoft-float -I. -I../include
LDFLAGS = -lm


CROSS_COMPILE 	= 

AS		= $(CROSS_COMPILE)as
LD		= $(CROSS_COMPILE)ld
CC		= $(CROSS_COMPILE)gcc
CPP		= $(CC) -E
AR		= $(CROSS_COMPILE)ar
NM		= $(CROSS_COMPILE)nm
STRIP		= $(CROSS_COMPILE)strip
OBJCOPY		= $(CROSS_COMPILE)objcopy
OBJDUMP		= $(CROSS_COMPILE)objdump

all:   buzzer led pacid battery rsw uart helloworld echosvr read_sn wdt comtest timeout_int getsendreceive getsendreceive_bin getexai getexdi setexao setexdo 
all:   i7kdio i7kaio 
all:   blocking non_blocking
all:   send_read getxvai  getxvao  getxvdi  getxvdo getmodbus setmodbus  setxvao  setxvdo  

getsendreceive: ./common/getsendreceive.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/getsendreceive.o $(LIBS) $(LDFLAGS)
	rm -f ./common/getsendreceive.o

getsendreceive_bin: ./common/getsendreceive_bin.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/getsendreceive_bin.o $(LIBS) $(LDFLAGS)
	rm -f ./common/getsendreceive_bin.o

getexai: ./common/getexai.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/getexai.o $(LIBS) $(LDFLAGS)
	rm -f ./common/getexai.o

getexdi: ./common/getexdi.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/getexdi.o $(LIBS) $(LDFLAGS)
	rm -f ./common/getexdi.o

setexao: ./common/setexao.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/setexao.o $(LIBS) $(LDFLAGS)
	rm -f ./common/setexao.o

setexdo: ./common/setexdo.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/setexdo.o $(LIBS) $(LDFLAGS)
	rm -f ./common/setexdo.o

pacid: ./common/pacid.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/pacid.o $(LIBS) $(LDFLAGS)
	rm -f ./common/pacid.o

buzzer: ./common/buzzer.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/buzzer.o $(LIBS) $(LDFLAGS)
	rm -f ./common/buzzer.o

rsw: ./common/rsw.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/rsw.o $(LIBS) $(LDFLAGS)
	rm -f ./common/rsw.o

comtest: ./common/comtest.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/comtest.o $(LIBS) $(LDFLAGS)
	rm -f ./common/comtest.o

timeout_int: ./common/timeout_int.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/timeout_int.o $(LIBS) $(LDFLAGS)
	rm -f ./common/timeout_int.o

battery: ./common/battery.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/battery.o $(LIBS) $(LDFLAGS)
	rm -f ./common/battery.o
	
helloworld: ./common/helloworld.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/helloworld.o $(LIBS) $(LDFLAGS)
	rm -f ./common/helloworld.o

wdt: ./common/wdt.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/wdt.o $(LIBS) $(LDFLAGS)
	rm -f ./common/wdt.o

read_sn: ./common/read_sn.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/read_sn.o $(LIBS) $(LDFLAGS)
	rm -f ./common/read_sn.o

uart: ./common/uart.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/uart.o $(LIBS) $(LDFLAGS)
	rm -f ./common/uart.o

echosvr: ./common/echosvr.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/echosvr.o $(LIBS) $(LDFLAGS)
	rm -f ./common/echosvr.o

i7kdio: ./i7k/i7kdio.o
	$(CC) $(CFLAGS) -o ./i7k/$@ ./i7k/i7kdio.o $(LIBS) $(LDFLAGS)
	rm -f ./i7k/i7kdio.o

i7kaio: ./i7k/i7kaio.o
	$(CC) $(CFLAGS) -o ./i7k/$@ ./i7k/i7kaio.o $(LIBS) $(LDFLAGS)
	rm -f ./i7k/i7kaio.o

send_read: ./i7k/send_read.o
	$(CC) $(CFLAGS) -o ./i7k/$@ ./i7k/send_read.o $(LIBS) $(LDFLAGS)
	rm -f ./i7k/send_read.o

getxvai: ./xvboard/getxvai.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/getxvai.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/getxvai.o

getxvao: ./xvboard/getxvao.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/getxvao.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/getxvao.o

getxvdi: ./xvboard/getxvdi.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/getxvdi.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/getxvdi.o

getxvdo: ./xvboard/getxvdo.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/getxvdo.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/getxvdo.o

getmodbus: ./xvboard/getmodbus.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/getmodbus.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/getmodbus.o

setmodbus: ./xvboard/setmodbus.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/setmodbus.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/setmodbus.o

setxvao: ./xvboard/setxvao.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/setxvao.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/setxvao.o

setxvdo: ./xvboard/setxvdo.o
	$(CC) $(CFLAGS) -o ./xvboard/$@ ./xvboard/setxvdo.o $(LIBS) $(LDFLAGS)
	rm -f ./xvboard/setxvdo.o

  	
non_blocking: ./serial_port/non_blocking.o
	$(CC) $(CFLAGS) -o ./serial_port/$@ ./serial_port/non_blocking.o $(LIBS) $(LDFLAGS)
	rm -f ./serial_port/non_blocking.o	

blocking: ./serial_port/blocking.o
	$(CC) $(CFLAGS) -o ./serial_port/$@ ./serial_port/blocking.o $(LIBS) $(LDFLAGS)
	rm -f ./serial_port/blocking.o	

led: ./common/led.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/led.o $(LIBS) $(LDFLAGS)
	rm -f ./common/led.o

indent:
	indent -kr -ts4 *.c


clean:
	rm -f ./common/*.o $(PJ) ./common/*~ ./common/*.tmp ./common*.bak \#* .\#*
	rm -f ./i7k/*.o $(PJ) ./i7k/*~ ./i7k/*.tmp ./i7k/*.bak \#* .\#*
	rm -f ./serial_port/*.o $(PJ) ./serial_port/*~ ./serial_port/*.tmp ./serial_port/*.bak \#* .\#*
	rm -f ./xvboard/*.o $(PJ) ./xvboard/*~ ./xvboard/*.tmp ./xvboard/*.bak \#* .\#*
