#SHELL = /bin/sh

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

GTKCFLAGS =  -I. -I../include -D_REENTRANT -I../../tools/arm-linux-gnueabihf/libc/usr/include -I../../tools/arm-linux-gnueabihf/libc/usr/include/gtk-2.0 -I../../tools/arm-linux-gnueabihf/libc/usr/include/gtk-2.0/gtk -I../../tools/arm-linux-gnueabihf/libc/usr/lib/gtk-2.0/include -I../../tools/arm-linux-gnueabihf/libc/usr/include/atk-1.0 -I../../tools/arm-linux-gnueabihf/libc/usr/include/freetype2 -I../../tools/arm-linux-gnueabihf/libc/usr/include/pango-1.0  -I../../tools/arm-linux-gnueabihf/libc/usr/include/glib-2.0 -I../../tools/arm-linux-gnueabihf/libc/usr/lib/glib-2.0/include -I../../tools/arm-linux-gnueabihf/libc/usr/include/cairo -I../../tools/arm-linux-gnueabihf/libc/usr/include/gdk-pixbuf-2.0 -Wl,--export-dynamic -pthread -L../../tools/arm-linux-gnueabihf/libc/lib -L../../tools/arm-linux-gnueabihf/libc/usr/lib -L../../tools/arm-linux-gnueabihf/libc/usr/lib/pkgconfig  -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lXft -lfreetype -lXrender -lXext -lxcb -lXext -lXdmcp -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0  -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0  


CROSS_COMPILE 	= arm-linux-gnueabihf-

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_52xx read_sn rsw  uart ipv4set helloworld echosvr timer2 getsendreceive getexai getexdi setexdo setexao 
all:   i7kdio i7kaio demo1 demo2 hello_gtk 
all:   blocking non_blocking
all:   send_read getxvai  getxvao  getxvdi  getxvdo getmodbus setmodbus  setxvao  setxvdo  


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

getsendreceive: ./common/getsendreceive.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/getsendreceive.o $(LIBS) $(LDFLAGS) 
	rm -f ./common/getsendreceive.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	

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

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

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

led_52xx: ./common/led_52xx.o
	$(CC) $(CFLAGS) -o ./common/$@ ./common/led_52xx.o $(LIBS) $(LDFLAGS) 
	rm -f ./common/led_52xx.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

demo1: ./gui/demo1.c
	$(CC) $(CFLAGS) $(GTKCFLAGS) -o ./gui/$@ ./gui/demo1.c $(LIBS)  $(LDFLAGS)
	rm -f ./gui/demo1.o

demo2: ./gui/demo2.c
	$(CC) $(CFLAGS) $(GTKCFLAGS) -o ./gui/$@ ./gui/demo2.c $(LIBS) $(LDFLAGS)
	rm -f ./gui/demo2.o

hello_gtk: ./gui/hello_gtk.c
	$(CC) $(CFLAGS) $(GTKCFLAGS) -o ./gui/$@ ./gui/hello_gtk.c $(LIBS) $(LDFLAGS)
	rm -f ./gui/hello_gtk.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 \#* .\#*
