# 
# $Id$
# 
# [ Description ]
# 
# Makefile
# 
# DIR_MORPHEO must be defined

Prediction_unit			= yes

ifndef Behavioural
include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
endif
ifndef Branch_Target_Buffer
include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Makefile.deps
endif
ifndef Direction
include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Makefile.deps
endif
ifndef Return_Address_Stack
include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/Makefile.deps
endif
ifndef Update_Prediction_Table
include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.deps
endif

#-----[ Directory ]----------------------------------------

Prediction_unit_DIR			=	$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit

#-----[ Library ]------------------------------------------

Prediction_unit_LIBRARY			= 	-lPrediction_unit			\
						$(Behavioural_LIBRARY)			\
						$(Branch_Target_Buffer_LIBRARY)		\
						$(Direction_LIBRARY)			\
						$(Return_Address_Stack_LIBRARY)		\
						$(Update_Prediction_Table_LIBRARY)	


Prediction_unit_DIR_LIBRARY		=	-L$(Prediction_unit_DIR)/lib		\
						$(Behavioural_DIR_LIBRARY)		\
						$(Branch_Target_Buffer_DIR_LIBRARY)	\
						$(Direction_DIR_LIBRARY)		\
						$(Return_Address_Stack_DIR_LIBRARY)	\
						$(Update_Prediction_Table_DIR_LIBRARY)	


#-----[ Rules ]--------------------------------------------

Prediction_unit_library		:
				@\
				$(MAKE) Behavioural_library;			\
				$(MAKE) Branch_Target_Buffer_library;		\
				$(MAKE) Direction_library;			\
				$(MAKE) Return_Address_Stack_library;		\
				$(MAKE) Update_Prediction_Table_library;	\
				$(MAKE) --directory=$(Prediction_unit_DIR) --makefile=Makefile;

Prediction_unit_library_clean	:
				@\
				$(MAKE) Behavioural_library_clean;		\
				$(MAKE) Branch_Target_Buffer_library_clean;	\
				$(MAKE) Direction_library_clean;		\
				$(MAKE) Return_Address_Stack_library_clean;	\
				$(MAKE) Update_Prediction_Table_library_clean;	\
				$(MAKE) --directory=$(Prediction_unit_DIR) --makefile=Makefile clean;
