source: trunk/Softwares/Makefile.Software @ 78

Last change on this file since 78 was 78, checked in by rosiere, 16 years ago

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
File size: 4.0 KB
Line 
1include                         $(MORPHEO_TOPLEVEL)/Makefile.tools
2
3#-----[ Directory ]---------------------------------------------------------------
4DIRECTORY_OBJ                   = obj
5DIRECTORY_BIN                   = bin
6
7EXE                             = soft
8
9#-----[ Files ]-------------------------------------------------------------------
10OBJECTS                         = $(OBJECTS_SYS) $(OBJECTS_ASM) $(OBJECTS_C)
11
12#-----[ To the compilation ]------------------------------------------------------
13OPTIMIZE                        = -O3 -fomit-frame-pointer -fdelayed-branch -mror -mcmov -msext -mhard-mul -msoft-div -msoft-float
14#Option :
15# -fomit-frame-pointer                  : n'utilise pas le pointeur de frame
16# -fdelayed-branch                      : utilise les delayed slot
17# ON            OFF
18# -mror         -mno-ror                : utilisation de l'instruction l.ror
19# -mcmov        -mno-cmov               : utilisation de l'instruction l.cmov
20# -msext        -mno-sext               : utilisation des instructions l.extXX
21# -mhard-mul    -msoft-mul              : utilisation du multiplieur materiel
22# -mhard-div    -msoft-div              : utilisation du diviseur materiel
23# -mhard-float  -msoft-float            : utilisation du flottant materiel
24# -msibcall     -mno-sibcall            : Enable sibcall optimization
25# -mlogue       -mno-logue              : Schedule pro/epi-logue.
26# -maj          -mno-aj                 : Use aligned jumps.
27
28# Tools
29CC                              = $(OR1K_BIN)/or32-elf-gcc
30AS                              = $(OR1K_BIN)/or32-elf-as
31LD                              = $(OR1K_BIN)/or32-elf-ld
32OBJDUMP                         = $(OR1K_BIN)/or32-elf-objdump
33NM                              = $(OR1K_BIN)/or32-elf-nm
34
35# Tools's option
36CC_OPT                          = $(INCLUDE) $(OPTIMIZE) -Wlong-long
37# -DHAVE_LIBC
38AS_OPT                          =
39LD_OPT                          = -T$(DIRECTORY_LDSCRIPT)/or32.ld $(LIBRARY) 
40OBJDUMP_OPT                     = -D
41NM_OPT                          = -n
42
43#-----[ Rules ]-------------------------------------------------------------------
44.PRECIOUS                       : $(DIRECTORY_BIN)/%.x.txt $(DIRECTORY_BIN)/%.x $(DIRECTORY_OBJ)/%.o
45
46all                             : test_env $(DIRECTORY_BIN)/$(EXE).x.txt
47
48$(DIRECTORY_BIN)/%.x.txt        : $(DIRECTORY_BIN)/%.x
49                                @\
50                                $(ECHO) "List symbols       : $*";              \
51                                $(NM)      $(NM_OPT)      $^ > $@.nm;           \
52                                $(ECHO) "Display info       : $*";              \
53                                $(OBJDUMP) $(OBJDUMP_OPT) $^ > $@;
54
55$(DIRECTORY_BIN)/%.x            : $(OBJECTS)
56                                @                                               \
57                                $(ECHO) "Linkage            : $*";              \
58                                $(LD) -o $@ $^ $(LD_OPT);
59
60$(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_ASM)/%.s 
61                                @                                               \
62                                $(ECHO) "Compilation        : $*";              \
63                                $(CC) $(CC_OPT)     -o $@   -c $^ ;             \
64                                $(CC) $(CC_OPT)  -S -o $@.s -c $^ ;
65#                               @$(AS) $(AS_OPT) $^ -o $@
66
67$(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_SYS)/%.s 
68                                @                                               \
69                                $(ECHO) "Compilation        : $*";              \
70                                $(CC) $(CC_OPT)     -o $@   -c $^ ;             \
71                                $(CC) $(CC_OPT)  -S -o $@.s -c $^ ;
72#                               @$(AS) $(AS_OPT) $^ -o $@
73
74$(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_C)/%.c
75                                @                                               \
76                                $(ECHO) "Compilation        : $*";              \
77                                $(CC) $(CC_OPT)     -o $@   -c $^ ;             \
78                                $(CC) $(CC_OPT)  -S -o $@.s -c $^ ;
79
80#-----[ Environement ]------------------------------------------------------------
81test_env                        :
82# ifeq ($(origin TOOLS), undefined)
83#                               $(error "variable TOOLS is undefined");
84# endif
85# ifeq ($(origin SOFT), undefined)
86#                               $(error "variable SOFT  is undefined");
87# endif
88                                @$(MKDIR) $(DIRECTORY_OBJ) $(DIRECTORY_BIN)
89
90#-----[ Maintenance ]-------------------------------------------------------------
91clean                           :
92                                @\
93                                $(ECHO) "Delete     temporary files              "`$(PWD)`;             \
94                                $(RM) $(DIRECTORY_OBJ) $(DIRECTORY_BIN);                                                \
95                                $(MAKE) clean_rec DIRECTORY_CLEAN=.;
96
97clean_rec                       :
98                                @\
99                                $(ECHO) "Delete     temporary files in directory $(DIRECTORY_CLEAN)";           \
100                                $(RM) -f $(DIRECTORY_CLEAN)/*~;                                         \
101                                for files in `$(LS) $(DIRECTORY_CLEAN)`; do                                     \
102                                        if $(TEST) -d $(DIRECTORY_CLEAN)/$$files;                               \
103                                        then                                                            \
104                                                $(MAKE) clean_rec DIRECTORY_CLEAN=$(DIRECTORY_CLEAN)/$$files;   \
105                                        fi;                                                             \
106                                done;
107
108#-----[ Help ]--------------------------------------------------------------------
109help                            :
110                                @\
111                                $(ECHO) "";\
112                                $(ECHO) "List of directive   : ";\
113                                $(ECHO) " * make             : Compile the software";\
114                                $(ECHO) " * make clean       : Erase all files generates";\
115                                $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.