UNO_LIB_OBJFILES = UNOGlobalAnalysis.o AnalysisResultManager.o PStringToken.o PBuffer.o
UNO_LIB_GLOBAL_OBJFILES = uno_global.o uno_fcts.o
MODULE_OBJ_FLAGS = -I ../include -D_LINUX_ -g
INCLUDES = ../include/AnalysisModuleInterface.h ../include/InOutPin.h 
GPP = g++
GCC = gcc
CFLAGS = -fpic

all :
	rm -rf uno_global.o uno_fcts.o	
	make UNOGlobalAnalysis.so
	cp -f UNOGlobalAnalysis.so ../Modules
	cp -f UNOGlobalAnalysis.so ../SwALinuxSource/Module

UNOGlobalAnalysis.so : $(UNO_LIB_OBJFILES) $(UNO_LIB_GLOBAL_OBJFILES)
	$(GPP) -g -shared -lc -o UNOGlobalAnalysis.so $(UNO_LIB_OBJFILES) $(UNO_LIB_GLOBAL_OBJFILES)

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

AnalysisResultManager.o : AnalysisResultManager.cpp AnalysisResultManager.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

uno_global.o : uno_global.h uno_fcts.h dtags.h
	$(GCC) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) uno_global.c

uno_fcts.o : uno_fcts.c dtags.h
	$(GCC) $(MODULE_OBJ_FLAGS) -c $(CFLAGS) uno_fcts.c

clean : 
	rm -rf *.o *.so
