SPLINT_LIB_OBJFILES = SplintBufferOverFlow.o AnalysisResultManager.o PStringToken.o PString.o PBuffer.o
MODULE_OBJ_FLAGS = -I ../../include -D_LINUX_ -g
INCLUDES = ../../include/AnalysisModuleInterface.h ../../include/InOutPin.h 
GPP = g++
GCC = gcc
CFLAGS = -fpic

all :
	make SplintBufferOverFlow.so
	cp -f SplintBufferOverFlow.so ../../Modules
	cp -f SplintBufferOverFlow.so ../../SwALinuxSource/Module

SplintBufferOverFlow.so : $(SPLINT_LIB_OBJFILES) 
	$(GPP) -g -shared -lc -o SplintBufferOverFlow.so $(SPLINT_LIB_OBJFILES)

SplintBufferOverFlow.o : SplintBufferOverFlow.cpp SplintBufferOverFlow.h AnalysisResultManager.h PString.h PStringToken.h SplintBufferOverFlowInfo.h $(INCLUDES)
	$(GPP) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) SplintBufferOverFlow.cpp

AnalysisResultManager.o : AnalysisResultManager.cpp AnalysisResultManager.h PString.h PBuffer.h PStringToken.h $(INCLUDES) 
	$(GPP) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) AnalysisResultManager.cpp

PStringToken.o : PStringToken.cpp PStringToken.h
	$(GPP) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) PStringToken.cpp

PBuffer.o : PBuffer.cpp PBuffer.h
	$(GPP) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) PBuffer.cpp

PString.o : PString.cpp PString.h	
	$(GPP) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) PString.cpp

clean : 
	rm -rf *.o *.so
