#####################################
# Makefile genérica
#  V. Santos, Oct-2011
####################################
#As minhas sources
SRC=Lib.c

#Biblioteca 
mLIB=libmyutils.a

#O ficheiro de configuração de documentação (a gerar)
DOXYFILE=Doxyfile

#Header files (exemplos)
HEADERS=prototypelib.h

################################
## Daqui para baixo não deve ser preciso mexer muito :-)

###definições (macros)
CC=gcc
CFLAGS=-Wall 
CFLAGS+=`pkg-config --cflags opencv`
#INCLUDE=-I.
OBJ=$(SRC:.c=.o)
LIBS+=`pkg-config --libs opencv` -lm

#### MACRO updates

CFLAGS+=`pkg-config --cflags gtk+-2.0`
LIBS+=`pkg-config --libs gtk+-2.0` -export-dynamic
# The -export-dynamic (or -E flag in the linker) is required to export all dynamic symbols.


#### Targets
$(mLIB): proto $(OBJ)    
	ar rc $(mLIB) $(OBJ)

.c.o: 
	$(CC) $(CFLAGS) -c $(INCLUDE) $< -o $@

clean:
	rm -f $(OBJ) $(mLIB) 

allclean: clean
	rm -f $(OBJ)
	rm -f $(DOXYFILE)
	rm -rf latex html

depend:
	@#redirect output to /dev/null due to some bugs in makedepend :-(
	makedepend -Y $(SRC) 2> /dev/null

doc:
	@ if ! [ -f $(DOXYFILE) ] ; then \
		doxygen -g $(DOXYFILE) ; \
		cat $(DOXYFILE) |\
		sed 's/^PROJECT_NAME.*$$/PROJECT_NAME      = $(PROG)/'|\
		sed 's/^QUIET.*$$/QUIET      = YES/'|\
		sed 's/^GENERATE_TREEVIEW.*$$/GENERATE_TREEVIEW      = ALL/'|\
		sed 's/^GENERATE_LATEX.*$$/GENERATE_LATEX      = NO/'|\
		sed 's/^HAVE_DOT.*$$/HAVE_DOT      = YES/'\
		> $(DOXYFILE) ; \
		doxygen $(DOXYFILE) ; \
	else \
		doxygen $(DOXYFILE); \
	fi

#Generate a list of functions (useful for prototypes)
#notice the $$ to escape the Make interpretation of $
proto prototypelib.h:
	@echo /*File generated automatically. Do not edit*/ > prototypelib.h
	@ ctags -x --c-kinds=f $(SRC) |\
	grep -v main | \
	awk '{for(n=5; n<=NF; n++) printf("%s ", $$n) ; printf(";\n");}' >> prototypelib.h

tags: $(SRC) $(HEADERS)
	ctags $(SRC) $(HEADERS)

# DO NOT DELETE
