Index: trunk/IPs/systemC/processor/Morpheo/TopLevel/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/TopLevel/Makefile.deps	(revision 139)
+++ trunk/IPs/systemC/processor/Morpheo/TopLevel/Makefile.deps	(revision 142)
@@ -10,9 +10,234 @@
 Morpheo                         = yes
 
+ifndef Divider
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Divider/Makefile.deps
+endif
+ifndef Victim_Pseudo_LRU
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps
+endif
+ifndef Victim
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Victim/Makefile.deps
+endif
+ifndef Select_Priority_Fixed
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.deps
+endif
+ifndef Sort
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Sort/Makefile.deps
+endif
+ifndef Comparator
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Comparator/Makefile.deps
+endif
+ifndef Queue_Control
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control/Makefile.deps
+endif
+ifndef Priority
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Priority/Makefile.deps
+endif
+ifndef Queue
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Queue/Makefile.deps
+endif
+ifndef RegisterFile_Monolithic
+include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps
+endif
+ifndef RegisterFile
+include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/Makefile.deps
+endif
+ifndef RegisterFile_Multi_Banked
+include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.deps
+endif
+ifndef Counter
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Counter/Makefile.deps
+endif
+ifndef Shifter
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Shifter/Makefile.deps
+endif
+ifndef Multiplier
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Multiplier/Makefile.deps
+endif
+ifndef Custom
+include 			$(DIR_MORPHEO)/Behavioural/Custom/Makefile.deps
+endif
 ifndef Configuration
 include 			$(DIR_MORPHEO)/Behavioural/Configuration/Makefile.deps
 endif
+ifndef Instruction
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.deps
+endif
+ifndef Decod
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Makefile.deps
+endif
+ifndef Decod_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.deps
+endif
+ifndef Decod_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/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 Branch_Target_Buffer_Register
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/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 Branch_Target_Buffer_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/Makefile.deps
+endif
+ifndef Prediction_unit_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/Makefile.deps
+endif
+ifndef Direction_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/Makefile.deps
+endif
+ifndef Meta_Predictor_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/Makefile.deps
+endif
+ifndef Two_Level_Branch_Predictor
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Makefile.deps
+endif
+ifndef Meta_Predictor
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Makefile.deps
+endif
+ifndef Direction
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/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
+ifndef Prediction_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Makefile.deps
+endif
+ifndef Front_end_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/Makefile.deps
+endif
+ifndef Front_end
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Makefile.deps
+endif
+ifndef Context_State
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Context_State/Makefile.deps
+endif
+ifndef Ifetch_unit_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/Makefile.deps
+endif
+ifndef Address_management
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/Makefile.deps
+endif
+ifndef Ifetch_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Makefile.deps
+endif
+ifndef Ifetch_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/Makefile.deps
+endif
+ifndef Icache_Access
+include 			$(DIR_MORPHEO)/Behavioural/Core/Icache_Access/Makefile.deps
+endif
+ifndef Core_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Core_Glue/Makefile.deps
+endif
+ifndef Load_store_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/Makefile.deps
+endif
+ifndef Operation
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.deps
+endif
+ifndef Functionnal_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Makefile.deps
+endif
+ifndef Register_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.deps
+endif
+ifndef Register_unit_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/Makefile.deps
+endif
+ifndef Read_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.deps
+endif
+ifndef Reservation_station
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.deps
+endif
+ifndef Read_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Makefile.deps
+endif
+ifndef Execute_loop_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/Makefile.deps
+endif
+ifndef Write_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.deps
+endif
+ifndef Write_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Makefile.deps
+endif
+ifndef Execute_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.deps
+endif
+ifndef Execute_loop
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Makefile.deps
+endif
+ifndef Execution_unit_to_Write_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/Makefile.deps
+endif
+ifndef Read_unit_to_Execution_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/Makefile.deps
+endif
+ifndef Dcache_Access
+include 			$(DIR_MORPHEO)/Behavioural/Core/Dcache_Access/Makefile.deps
+endif
+ifndef Special_Register_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.deps
+endif
+ifndef Issue_queue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/Makefile.deps
+endif
+ifndef Free_List_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/Makefile.deps
+endif
+ifndef Register_translation_unit_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/Makefile.deps
+endif
+ifndef Register_Address_Translation_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/Makefile.deps
+endif
+ifndef Register_translation_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Makefile.deps
+endif
+ifndef Dependency_checking_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/Makefile.deps
+endif
+ifndef Stat_List_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/Makefile.deps
+endif
+ifndef Rename_select
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/Makefile.deps
+endif
+ifndef Load_Store_pointer_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/Makefile.deps
+endif
+ifndef Rename_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Makefile.deps
+endif
+ifndef Rename_unit_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/Makefile.deps
+endif
+ifndef Commit_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/Makefile.deps
+endif
+ifndef Reexecute_unit
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/Makefile.deps
+endif
+ifndef OOO_Engine
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Makefile.deps
+endif
+ifndef OOO_Engine_Glue
+include 			$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/Makefile.deps
+endif
 ifndef Core
 include 			$(DIR_MORPHEO)/Behavioural/Core/Makefile.deps
+endif
+ifndef Behavioural
+include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
+endif
+ifndef Common
+include 			$(DIR_MORPHEO)/Common/Makefile.deps
 endif
 
@@ -27,21 +252,185 @@
                                         $(Core_LIBRARY)	
 
-Morpheo_DIR_LIBRARY		=	-L$(Morpheo_DIR)/lib            \
-					$(Configuration_DIR_LIBRARY)	\
-					$(Core_DIR_LIBRARY)
-
 #-----[ Rules ]--------------------------------------------
 
-Morpheo_library         	:
+Morpheo_library_only    	:
+				@\
+				$(MAKE) --directory=$(Morpheo_DIR) --makefile=Makefile;
+
+Morpheo_library_clean_only      :
+				@\
+				$(MAKE) --directory=$(Morpheo_DIR) --makefile=Makefile clean;
+
+Morpheo_library_step   		: 	
+					@\
+					$(MAKE) Morpheo_library_only;\
+					$(MAKE) Comparator_library_only;\
+					$(MAKE) Counter_library_only;\
+					$(MAKE) Divider_library_only;\
+					$(MAKE) Multiplier_library_only;\
+					$(MAKE) Priority_library_only;\
+					$(MAKE) Queue_Control_library_only;\
+					$(MAKE) Queue_library_only;\
+					$(MAKE) RegisterFile_Monolithic_library_only;\
+					$(MAKE) RegisterFile_Multi_Banked_library_only;\
+					$(MAKE) RegisterFile_library_only;\
+					$(MAKE) Select_Priority_Fixed_library_only;\
+					$(MAKE) Shifter_library_only;\
+					$(MAKE) Sort_library_only;\
+					$(MAKE) Victim_Pseudo_LRU_library_only;\
+					$(MAKE) Victim_library_only;\
+					$(MAKE) Execute_loop_Glue_library_only;\
+					$(MAKE) Operation_library_only;\
+					$(MAKE) Functionnal_unit_library_only;\
+					$(MAKE) Load_store_unit_library_only;\
+					$(MAKE) Read_queue_library_only;\
+					$(MAKE) Reservation_station_library_only;\
+					$(MAKE) Read_unit_library_only;\
+					$(MAKE) Execute_queue_library_only;\
+					$(MAKE) Write_queue_library_only;\
+					$(MAKE) Write_unit_library_only;\
+					$(MAKE) Execution_unit_to_Write_unit_library_only;\
+					$(MAKE) Read_unit_to_Execution_unit_library_only;\
+					$(MAKE) Register_unit_Glue_library_only;\
+					$(MAKE) Register_unit_library_only;\
+					$(MAKE) Execute_loop_library_only;\
+					$(MAKE) Commit_unit_library_only;\
+					$(MAKE) Issue_queue_library_only;\
+					$(MAKE) OOO_Engine_Glue_library_only;\
+					$(MAKE) Reexecute_unit_library_only;\
+					$(MAKE) Load_Store_pointer_unit_library_only;\
+					$(MAKE) Dependency_checking_unit_library_only;\
+					$(MAKE) Free_List_unit_library_only;\
+					$(MAKE) Register_Address_Translation_unit_library_only;\
+					$(MAKE) Register_translation_unit_Glue_library_only;\
+					$(MAKE) Stat_List_unit_library_only;\
+					$(MAKE) Register_translation_unit_library_only;\
+					$(MAKE) Rename_unit_Glue_library_only;\
+					$(MAKE) Rename_select_library_only;\
+					$(MAKE) Rename_unit_library_only;\
+					$(MAKE) Special_Register_unit_library_only;\
+					$(MAKE) OOO_Engine_library_only;\
+					$(MAKE) Context_State_library_only;\
+					$(MAKE) Instruction_library_only;\
+					$(MAKE) Decod_library_only;\
+					$(MAKE) Decod_queue_library_only;\
+					$(MAKE) Decod_unit_library_only;\
+					$(MAKE) Front_end_Glue_library_only;\
+					$(MAKE) Address_management_library_only;\
+					$(MAKE) Ifetch_queue_library_only;\
+					$(MAKE) Ifetch_unit_Glue_library_only;\
+					$(MAKE) Ifetch_unit_library_only;\
+					$(MAKE) Branch_Target_Buffer_Glue_library_only;\
+					$(MAKE) Branch_Target_Buffer_Register_library_only;\
+					$(MAKE) Branch_Target_Buffer_library_only;\
+					$(MAKE) Direction_Glue_library_only;\
+					$(MAKE) Direction_library_only;\
+					$(MAKE) Two_Level_Branch_Predictor_library_only;\
+					$(MAKE) Meta_Predictor_Glue_library_only;\
+					$(MAKE) Meta_Predictor_library_only;\
+					$(MAKE) Prediction_unit_Glue_library_only;\
+					$(MAKE) Return_Address_Stack_library_only;\
+					$(MAKE) Update_Prediction_Table_library_only;\
+					$(MAKE) Prediction_unit_library_only;\
+					$(MAKE) Front_end_library_only;\
+					$(MAKE) Icache_Access_library_only;\
+					$(MAKE) Dcache_Access_library_only;\
+					$(MAKE) Core_Glue_library_only;\
+					$(MAKE) Core_library_only;\
+					$(MAKE) Behavioural_library_only;\
+					$(MAKE) Custom_library_only;\
+					$(MAKE) Common_library_only;\
+					$(MAKE) Configuration_library_only
+
+#					$(MAKE) Select_library_only;\
+
+Morpheo_library_parallel       	: 	Morpheo_library_only\
+					Comparator_library_only\
+					Counter_library_only\
+					Divider_library_only\
+					Multiplier_library_only\
+					Priority_library_only\
+					Queue_Control_library_only\
+					Queue_library_only\
+					RegisterFile_Monolithic_library_only\
+					RegisterFile_Multi_Banked_library_only\
+					RegisterFile_library_only\
+					Select_Priority_Fixed_library_only\
+					Shifter_library_only\
+					Sort_library_only\
+					Victim_Pseudo_LRU_library_only\
+					Victim_library_only\
+					Execute_loop_Glue_library_only\
+					Operation_library_only\
+					Functionnal_unit_library_only\
+					Load_store_unit_library_only\
+					Read_queue_library_only\
+					Reservation_station_library_only\
+					Read_unit_library_only\
+					Execute_queue_library_only\
+					Write_queue_library_only\
+					Write_unit_library_only\
+					Execution_unit_to_Write_unit_library_only\
+					Read_unit_to_Execution_unit_library_only\
+					Register_unit_Glue_library_only\
+					Register_unit_library_only\
+					Execute_loop_library_only\
+					Commit_unit_library_only\
+					Issue_queue_library_only\
+					OOO_Engine_Glue_library_only\
+					Reexecute_unit_library_only\
+					Load_Store_pointer_unit_library_only\
+					Dependency_checking_unit_library_only\
+					Free_List_unit_library_only\
+					Register_Address_Translation_unit_library_only\
+					Register_translation_unit_Glue_library_only\
+					Stat_List_unit_library_only\
+					Register_translation_unit_library_only\
+					Rename_unit_Glue_library_only\
+					Rename_select_library_only\
+					Rename_unit_library_only\
+					Special_Register_unit_library_only\
+					OOO_Engine_library_only\
+					Context_State_library_only\
+					Instruction_library_only\
+					Decod_library_only\
+					Decod_queue_library_only\
+					Decod_unit_library_only\
+					Front_end_Glue_library_only\
+					Address_management_library_only\
+					Ifetch_queue_library_only\
+					Ifetch_unit_Glue_library_only\
+					Ifetch_unit_library_only\
+					Branch_Target_Buffer_Glue_library_only\
+					Branch_Target_Buffer_Register_library_only\
+					Branch_Target_Buffer_library_only\
+					Direction_Glue_library_only\
+					Direction_library_only\
+					Two_Level_Branch_Predictor_library_only\
+					Meta_Predictor_Glue_library_only\
+					Meta_Predictor_library_only\
+					Prediction_unit_Glue_library_only\
+					Return_Address_Stack_library_only\
+					Update_Prediction_Table_library_only\
+					Prediction_unit_library_only\
+					Front_end_library_only\
+					Icache_Access_library_only\
+					Dcache_Access_library_only\
+					Core_Glue_library_only\
+					Core_library_only\
+					Behavioural_library_only\
+					Custom_library_only\
+					Common_library_only\
+					Configuration_library_only
+
+Morpheo_library_old         	: Morpheo_library_only
 				@\
 				$(MAKE) Configuration_library;		\
-				$(MAKE) Core_library;		        \
-				$(MAKE) --directory=$(Morpheo_DIR) --makefile=Makefile;
-
-Morpheo_library_clean	        :
+				$(MAKE) Core_library;
+
+Morpheo_library			: Morpheo_library_parallel
+
+Morpheo_library_clean	        : Morpheo_library_clean_only
 				@\
 				$(MAKE) Configuration_library_clean;	\
-				$(MAKE) Core_library_clean;	        \
-				$(MAKE) --directory=$(Morpheo_DIR) --makefile=Makefile clean;
-
-
+				$(MAKE) Core_library_clean;
