#SHELL = /bin/sh
PJ = back_plane_id dip_switch echosvr eeprom getdo_rb getexai getexdi getlist getport getreceive getsendreceive getsendreceive-bin helloworld led lx800_wdt lx800_wdt2 port read_sn rotary_atom_id rotary_id send_receive set_atom_led setdo_bw setexao setexdo setport setsend slot_count sram timer timer2 uart wdt wdt_safe_value

CFLAGS = -I. -I../../../include
#CFLAGS = -msoft-float -I. -I../include
LDFLAGS = -lm

OS_BIT = $(shell getconf LONG_BIT)

ifeq ($(OS_BIT), 32)
        LIBS = ../../../lib/libPAC_x86.a
else
        LIBS = ../../../lib/libPAC_x86_64.a
endif

#GTKCFLAGS =  -I. -I../include `pkg-config --cflags --libs gtk+-2.0`
#GTKCFLAGS =  -I. -I../include -D_REENTRANT -I/lincon/i8k/opt/include/gtk-2.0 -I/lincon/i8k/opt/include/gtk-2.0 -I/lincon/i8k/opt/lib/gtk-2.0/include -I/lincon/i8k/opt/include/atk-1.0 -I/lincon/i8k/opt/X11R6/include -I/lincon/i8k/opt/include/freetype2 -I/lincon/i8k/opt/include/pango-1.0 -I/lincon/i8k/opt/X11R6/include -I/lincon/i8k/opt/X11R6/include/freetype2 -I/lincon/i8k/opt/include/glib-2.0 -I/lincon/i8k/opt/lib/glib-2.0/include  -Wl,--export-dynamic -pthread -L/lincon/i8k/opt/lib -L/lincon/i8k/opt/lib -L/lincon/i8k/opt/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lXft -lfreetype -lXrender -lX11 -lXext -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -liconv -lpthread

#GTKCFLAGS =  -I. -I../include `PKG_CONFIG_PATH=/opt/lib/pkgconfig pkg-config --cflags --libs gtk+-2.0 gthread-2.0`

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:	back_plane_id dip_switch echosvr eeprom getdo_rb getexai getexdi getlist getport getreceive getsendreceive getsendreceive-bin helloworld led port read_sn rotary_id send_receive setdo_bw setexao setexdo setport setsend slot_count sram timer timer2 uart wdt wdt_safe_value set_atom_led

ifeq ($(LinPAC), x86)
all:     lx800_wdt lx800_wdt2 rotary_atom_id set_atom_led	
endif

back_plane_id: back_plane_id.o
	$(CC) $(CFLAGS) -o $@ back_plane_id.o $(LIBS) $(LDFLAGS)
	rm -f back_plane_id.o
slot_count: slot_count.o
	$(CC) $(CFLAGS) -o $@ slot_count.o $(LIBS) $(LDFLAGS)
	rm -f slot_count.o
dip_switch: dip_switch.o
	$(CC) $(CFLAGS) -o $@ dip_switch.o $(LIBS) $(LDFLAGS)
	rm -f dip_switch.o
rotary_id: rotary_id.o
	$(CC) $(CFLAGS) -o $@ rotary_id.o $(LIBS) $(LDFLAGS)
	rm -f rotary_id.o

rotary_atom_id: rotary_atom_id.o
	$(CC) $(CFLAGS) -o $@ rotary_atom_id.o $(LIBS) $(LDFLAGS)
	rm -f rotary_atom_id.o

set_atom_led: set_atom_led.o
	$(CC) $(CFLAGS) -o $@ set_atom_led.o $(LIBS) $(LDFLAGS)
	rm -f set_atom_led.o

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

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

getlist: getlist.o
	$(CC) $(CFLAGS) -o $@ getlist.o $(LIBS) $(LDFLAGS)
	rm -f getlist.o

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

send_receive: send_receive.o
	$(CC) $(CFLAGS) -o $@ send_receive.o $(LIBS) $(LDFLAGS)
	rm -f send_receive.o

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

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

setsend: setsend.o
	$(CC) $(CFLAGS) -o $@ setsend.o $(LIBS) $(LDFLAGS)
	rm -f setsend.o

getreceive: getreceive.o
	$(CC) $(CFLAGS) -o $@ getreceive.o $(LIBS) $(LDFLAGS)
	rm -f getreceive.o

eeprom: eeprom.o
	$(CC) $(CFLAGS) -o $@ eeprom.o $(LIBS) $(LDFLAGS)
	rm -f eeprom.o

timer: timer.o
	$(CC) $(CFLAGS) -o $@ timer.o $(LIBS) $(LDFLAGS)
	rm -f timer.o

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

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

port: port.o
	$(CC) $(CFLAGS) -o $@ port.o $(LIBS) $(LDFLAGS)
	rm -f port.o

setport: setport.o
	$(CC) $(CFLAGS) -o $@ setport.o $(LIBS) $(LDFLAGS)
	rm -f setport.o

getport: getport.o
	$(CC) $(CFLAGS) -o $@ getport.o $(LIBS) $(LDFLAGS)
	rm -f getport.o

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

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

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

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

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

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

ifeq ($(LinPAC), x86)
lx800_wdt: lx800_wdt.o
	$(CC) $(CFLAGS) -o $@ lx800_wdt.o $(LIBS) $(LDFLAGS)
	rm -f lx800_wdt.o

lx800_wdt2: lx800_wdt2.o
	$(CC) $(CFLAGS) -o $@ lx800_wdt2.o $(LIBS) $(LDFLAGS)
	rm -f lx800_wdt2.o
endif

sram: sram.o
	$(CC) $(CFLAGS) -o $@ sram.o $(LIBS) $(LDFLAGS)
	rm -f sram.o

wdt_safe_value: wdt_safe_value.o
	$(CC) $(CFLAGS) -o $@ wdt_safe_value.o $(LIBS) $(LDFLAGS)
	rm -f wdt_safe_value.o

getdo_rb: getdo_rb.o
	$(CC) $(CFLAGS) -o $@ getdo_rb.o $(LIBS) $(LDFLAGS)
	rm -f getdo_rb.o

setdo_bw: setdo_bw.o
	$(CC) $(CFLAGS) -o $@ setdo_bw.o $(LIBS) $(LDFLAGS)
	rm -f setdo_bw.o

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

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

#send_read: send_read.o
#	$(CC) $(CFLAGS) -o $@ send_read.o $(LIBS)
#	rm -f send_read.o

indent:
	indent -kr -ts4 *.c

clean:
	rm -f *.o $(PJ) *~ *.tmp *.bak \#* .\#*
