source: trunk/Softwares/Makefile.Software @ 108

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

1) Add soc test
2) fix bug (Pc management, Decod and execute, Update prediction ...)

  • Property svn:keywords set to Id
File size: 4.1 KB
RevLine 
[88]1#
2# $Id: Makefile.Software 101 2009-01-15 17:19:08Z rosiere $
3#
4# [ Description ]
5#
6# Makefile
7#
[78]8
[88]9ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
10        $(error "variable MORPHEO_TOPLEVEL is undefined")
11else
12        include $(MORPHEO_TOPLEVEL)/Makefile.tools
13endif
14
[78]15#-----[ Directory ]---------------------------------------------------------------
[88]16DIR_OBJ                         = obj
17DIR_BIN                         = bin
[78]18
19EXE                             = soft
20
[100]21DIR_COMMON              = $(MORPHEO_TOPLEVEL)/Softwares/Common
[101]22DIR_COMMON_C            = $(DIR_COMMON)/src/c
23DIR_COMMON_ASM          = $(DIR_COMMON)/src/asm
24DIR_COMMON_SYS          = $(DIR_COMMON)/src/sys
25DIR_COMMON_INC          = $(DIR_COMMON)/include
[100]26
[101]27OBJECTS_COMMON          =       $(patsubst $(DIR_COMMON_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_SYS)/*.s))      \
28                                $(patsubst $(DIR_COMMON_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_ASM)/*.s))      \
[100]29                                $(patsubst $(DIR_COMMON_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_C)/*.c))
30
31
[78]32#-----[ To the compilation ]------------------------------------------------------
[101]33OPTIMIZE                        = -O3 -std=c99 -fomit-frame-pointer -fdelayed-branch -mror -mcmov -msext -mhard-mul -msoft-div -msoft-float
[78]34#Option :
35# -fomit-frame-pointer                  : n'utilise pas le pointeur de frame
36# -fdelayed-branch                      : utilise les delayed slot
37# ON            OFF
38# -mror         -mno-ror                : utilisation de l'instruction l.ror
39# -mcmov        -mno-cmov               : utilisation de l'instruction l.cmov
40# -msext        -mno-sext               : utilisation des instructions l.extXX
41# -mhard-mul    -msoft-mul              : utilisation du multiplieur materiel
42# -mhard-div    -msoft-div              : utilisation du diviseur materiel
43# -mhard-float  -msoft-float            : utilisation du flottant materiel
44# -msibcall     -mno-sibcall            : Enable sibcall optimization
45# -mlogue       -mno-logue              : Schedule pro/epi-logue.
46# -maj          -mno-aj                 : Use aligned jumps.
47
48# Tools
[81]49OR32_CC                         = $(OR1K_BIN)/or32-elf-gcc
50OR32_AS                         = $(OR1K_BIN)/or32-elf-as
51OR32_LD                         = $(OR1K_BIN)/or32-elf-ld
52OR32_OBJDUMP                    = $(OR1K_BIN)/or32-elf-objdump
53OR32_NM                         = $(OR1K_BIN)/or32-elf-nm
[78]54
55# Tools's option
[100]56OR32_CC_OPT                     = $(INCDIR) $(OPTIMIZE) -Wlong-long
[78]57# -DHAVE_LIBC
[81]58OR32_AS_OPT                     =
[100]59OR32_LD_OPT                     = -T$(DIR_LDSCRIPT)/or32.ld $(LIBDIR) $(LIBNAME)
[81]60OR32_OBJDUMP_OPT                = -D
61OR32_NM_OPT                     = -n
[78]62
63#-----[ Rules ]-------------------------------------------------------------------
[88]64.PRECIOUS                       : $(DIR_BIN)/%.x.txt $(DIR_BIN)/%.x $(DIR_OBJ)/%.o
[78]65
[101]66vpath   %.h     $(DIR_INC):$(DIR_COMMON_INC)
67vpath   %.c     $(DIR_C):$(DIR_COMMON_C)
68vpath   %.s     $(DIR_ASM):$(DIR_SYS):$(DIR_COMMON_ASM):$(DIR_COMMON_SYS)
[88]69vpath   %.o     $(DIR_OBJ)
70vpath   %.x     $(DIR_BIN)
[78]71
[88]72all                             :
[78]73                                @\
[88]74                                $(MKDIR) $(DIR_BIN) $(DIR_OBJ);                 \
75                                $(MAKE)  $(DIR_BIN)/$(EXE).x;
[78]76
[88]77$(DIR_BIN)/%.x                  : $(OBJECTS)
78                                @\
79                                $(ECHO) "Linkage            : $*.x";            \
80                                $(OR32_LD) -o $@ $^ $(OR32_LD_OPT);             \
81                                $(ECHO) "List symbols       : $*.x.nm";         \
82                                $(OR32_NM)      $(OR32_NM_OPT)      $^ > $@.nm; \
83                                $(ECHO) "Display info       : $*.x.txt";                \
[101]84                                $(OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $@ > $@.txt;
[78]85
[88]86$(DIR_OBJ)/%.o                  : %.s   
87                                @\
88                                $(ECHO) "Compilation        : $*.s";            \
89                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;   \
[81]90                                $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
91#                               @$(OR32_AS) $(OR32_AS_OPT) $^ -o $@
[78]92
[88]93$(DIR_OBJ)/%.o                  : %.c
94                                @\
95                                $(ECHO) "Compilation        : $*.c";            \
96                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;   \
[81]97                                $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
[78]98
99#-----[ Maintenance ]-------------------------------------------------------------
100clean                           :
101                                @\
[88]102                                $(ECHO) "Delete     temporary files";           \
103                                $(RM)   $(DIR_OBJ) $(DIR_BIN)   \
104                                        *~                      \
105                                        $(DIR_SRC)/*~           \
106                                        $(DIR_C)/*~             \
107                                        $(DIR_ASM)/*~           \
108                                        $(DIR_SYS)/*~           \
109                                        $(DIR_INC)/*~           \
110                                        $(DIR_LDSCRIPT)/*~      \
[78]111
[88]112clean_all                       : clean
[78]113
114#-----[ Help ]--------------------------------------------------------------------
115help                            :
116                                @\
117                                $(ECHO) "";\
118                                $(ECHO) "List of directive   : ";\
[88]119                                $(ECHO) " * all              : Compile the software";\
120                                $(ECHO) " * clean            : Erase all files generates";\
121                                $(ECHO) " * clean_all        : Erase all files generates";\
[78]122                                $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.