#plese edit dirs
#INSTALLDIR = /usr/libexec
#CONFDIR = /etc/squid
SRC = src
INTERFACE = $(SRC)/interface
EXTRA_OPERATIONS=$(SRC)/ExtraOperations
CC = gcc
DEFINES = -DVAPI_OS_LINUX -DDEBUG_LEVEL_0
CFLAGS = $(DEFINES) `pkg-config --cflags gtk+-2.0 libglade-2.0 opencv libxml-2.0` -I $(SRC)  -I $(INTERFACE) -I $(EXTRA_OPERATIONS) -Wall -Wreturn-type -Wswitch -Wunused -Wuninitialized -Winline -Wpointer-arith -O2 #-Wmissing-prototypes
LDFLAGS =  `pkg-config --libs gtk+-2.0 libglade-2.0 gthread-2.0 opencv libxml-2.0` 


#INSTALL = /usr/bin/install
#CONF = $(SRC)/pgsql_auth.conf

V_INTERFACE = $(INTERFACE)/vapiGtkWindowIOConfigure.o $(INTERFACE)/vapiGtkWindowIOAdd.o $(INTERFACE)/vapiGtkOptions.o $(INTERFACE)/vapiGtkOptionsOperations.o $(INTERFACE)/vapiGtkSetOriginWindow.o $(INTERFACE)/vapiGtkWindowSelectOperation.o $(INTERFACE)/vapiGtkCalibrateCamera.o $(INTERFACE)/vapiGtkImages.o $(INTERFACE)/vapiGtkEventsOperations.o $(INTERFACE)/vapiGtkAuxWindow.o $(INTERFACE)/vapiGtkMemory.o $(INTERFACE)/vapiGtkAux.o $(INTERFACE)/vapiGtkConnectEvents.o $(INTERFACE)/vapiGtkEvents.o $(INTERFACE)/vapiGtkImageAux.o $(INTERFACE)/vapiGtkInterface.o $(INTERFACE)/vapiGtkTable.o $(INTERFACE)/vapiGtkMessages.o

V_INTERFACE_MACROS = $(INTERFACE)/vapiGtkEventsMacros.o  $(INTERFACE)/vapiGtkMacro.o $(INTERFACE)/vapiGtkMacrosTables.o $(INTERFACE)/vapiGtkMacroItemMove.o

V_MACROS = $(SRC)/vapiMacroXML.o $(SRC)/vapiMacroList.o $(SRC)/vapiMacro.o $(SRC)/vapiResult.o $(SRC)/vapiMacroBypass.o

V_OPERATIONS = $(SRC)/vapiOperationList.o $(SRC)/vapiOperationsDefault.o $(SRC)/vapiOperation.o $(SRC)/vapiOperationOptions.o $(SRC)/vapiOperationsData.o $(SRC)/vapiOperationXML.o

V_OPTIONS = $(SRC)/vapiOptionsSet.o $(SRC)/vapiOptions.o $(SRC)/vapiOptionsXML.o

V_CAMERA = $(SRC)/vapiCameraSettings.o $(SRC)/vapiCameraCalibrate.o $(SRC)/vapiCameraAcquisition.o

V_IO = $(SRC)/vapiIOData.o $(SRC)/vapiIO.o $(SRC)/vapiIOList.o $(SRC)/vapiIOCom.o $(SRC)/vapiIOXML.o

V_IMAGES = $(SRC)/vapiImages.o $(SRC)/vapiImagesAux.o

V_VAPI = $(SRC)/vapiLists.o $(SRC)/vapiAux.o $(SRC)/vapiMemory.o $(SRC)/vapiString.o $(SRC)/vapiGroups.o $(SRC)/vapiXML.o

V_EXTRA_OPERATION = 	$(EXTRA_OPERATIONS)/vapiExtraOperationsTimers.o \
			$(EXTRA_OPERATIONS)/ImageOperations.o \
			$(EXTRA_OPERATIONS)/vapiOperationsExtraIO.o 

OBJS =  $(V_INTERFACE) \
	$(V_MACROS) \
	$(V_OPERATIONS) \
	$(V_OPTIONS) \
	$(V_CAMERA) \
	$(V_IO) \
	$(V_VAPI) \
	$(V_IMAGES) \
	$(V_INTERFACE_MACROS) \
	$(V_EXTRA_OPERATION)

all: vapi

clean:
	rm -rf $(SRC)/*.o $(INTERFACE)/*.o $(EXTRA_OPERATIONS)/*.o vapi testeA

vapi: $(SRC)/vapi.o $(OBJS) 
	$(CC) $(DEFINES) -o $@ $(OBJS) $(SRC)/vapi.c $(CFLAGS) $(LDFLAGS) -v 

testeA: $(SRC)/testeA.o $(OBJS)
	$(CC) $(DEFINES) -o $@ $(OBJS) $(SRC)/testeA.c $(CFLAGS) $(LDFLAGS) -v 

#install:
#	$(INSTALL) -o nobody -g nogroup -m 755 pgsql_auth $(INSTALLDIR)/pgsql_auth
#	$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) $(CONFDIR)/pgsql_auth.conf
#	$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) $(CONFDIR)/pgsql_auth.conf.default
