############################################

PROG=out
SRC=main.c gtk.c rs232.c extra.c

default:
	gcc $(SRC) -o $(PROG) `pkg-config --cflags --libs gtk+-2.0` -export-dynamic
	$(call userinfo-gtkbuilder)

libglade:
	gcc -DUSELIBGLADE=1 $(SRC) -o $(PROG) `pkg-config --cflags --libs libglade-2.0` -export-dynamic
	$(call userinfo-libglade)

clean:
	$(RM) *~ $(PROG)

doc:
doc:
	doxygen Doxyfile




################################# 
#Some user functions :-)
#   V. Santos, 23-Nov-2009,02:19
################################# 
RED  =31
GREEN=32
BLUE =34
################################# 

define userinfo-gtkbuilder
	$(call alerton, $(GREEN) ) 
	@echo "  THE *.glade FILE IS EXPECTED TO BE IN GTKBUILDER FORMAT   "
	$(call alerton, $(RED) ) 
	@echo $(call checkgtkbuilderfile)
	$(call alertoff)
endef

define userinfo-libglade
	$(call alerton, $(BLUE) ) 
	@echo "  THE *.glade FILE IS EXPECTED TO BE IN LIBGLADE FORMAT   "
	$(call alerton, $(RED) ) 
	@echo $(call checklibgladefile)
	$(call alertoff)
endef

define alerton
	@printf "\033[%d;%d;%dm" 7 $1 48
endef

define alertoff
	@printf "\033[%d;%d;%dm" 0 0 0
endef

#Tests if file if gtkbuilder compliant. Fails if not!
define checkgtkbuilderfile
	$(if $(shell head *.glade 2>/dev/null | grep '<interface>'), ,\
	         $(shell echo 'But it does not seem so! Please check the file.'))
endef

#Tests if file is libglade compliant. Fails if not!
define checklibgladefile
	$(if $(shell head *.glade 2>/dev/null | grep '<glade-interface>'), ,\
	         $(shell echo 'But it does not seem so! Please check the file.'))
endef

