source: trunk/Softwares/Makefile.Software @ 128

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

1) Add test and configuration
2) Fix Bug
3) Add log file in load store unit
4) Fix Bug in environment

  • Property svn:keywords set to Id
File size: 4.2 KB
RevLine 
[88]1#
2# $Id: Makefile.Software 124 2009-06-17 12:11:25Z 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 ]------------------------------------------------------
[111]33OPTIMIZE                        = -O2 -std=c99 -fomit-frame-pointer -fdelayed-branch -mror -mcmov -msext -mhard-mul -msoft-div -msoft-float
[112]34
[78]35#Option :
36# -fomit-frame-pointer                  : n'utilise pas le pointeur de frame
37# -fdelayed-branch                      : utilise les delayed slot
38# ON            OFF
39# -mror         -mno-ror                : utilisation de l'instruction l.ror
40# -mcmov        -mno-cmov               : utilisation de l'instruction l.cmov
41# -msext        -mno-sext               : utilisation des instructions l.extXX
42# -mhard-mul    -msoft-mul              : utilisation du multiplieur materiel
43# -mhard-div    -msoft-div              : utilisation du diviseur materiel
44# -mhard-float  -msoft-float            : utilisation du flottant materiel
45# -msibcall     -mno-sibcall            : Enable sibcall optimization
46# -mlogue       -mno-logue              : Schedule pro/epi-logue.
47# -maj          -mno-aj                 : Use aligned jumps.
48
49# Tools
[81]50OR32_CC                         = $(OR1K_BIN)/or32-elf-gcc
51OR32_AS                         = $(OR1K_BIN)/or32-elf-as
52OR32_LD                         = $(OR1K_BIN)/or32-elf-ld
53OR32_OBJDUMP                    = $(OR1K_BIN)/or32-elf-objdump
54OR32_NM                         = $(OR1K_BIN)/or32-elf-nm
[78]55
56# Tools's option
[117]57OR32_CC_OPT                     = -Wall $(INCDIR) $(OPTIMIZE) -Wlong-long -DMorpheo $(FLAGS)
[78]58# -DHAVE_LIBC
[81]59OR32_AS_OPT                     =
[112]60OR32_LD_OPT                     = -T$(DIR_LDSCRIPT)/or32.ld $(LIBDIR) $(LIBNAME) $(OR1K_LIBDIR) $(OR1K_LIBNAME)
[81]61OR32_OBJDUMP_OPT                = -D
62OR32_NM_OPT                     = -n
[78]63
64#-----[ Rules ]-------------------------------------------------------------------
[88]65.PRECIOUS                       : $(DIR_BIN)/%.x.txt $(DIR_BIN)/%.x $(DIR_OBJ)/%.o
[78]66
[101]67vpath   %.h     $(DIR_INC):$(DIR_COMMON_INC)
68vpath   %.c     $(DIR_C):$(DIR_COMMON_C)
69vpath   %.s     $(DIR_ASM):$(DIR_SYS):$(DIR_COMMON_ASM):$(DIR_COMMON_SYS)
[88]70vpath   %.o     $(DIR_OBJ)
71vpath   %.x     $(DIR_BIN)
[78]72
[124]73all                             : $(DIR_BIN)/$(EXE).x
[78]74
[124]75$(DIR_BIN)/%.x                  : $(DIR_BIN) $(DIR_OBJ)
[88]76                                @\
[124]77                                $(MAKE) $(OBJECTS);                             \
[88]78                                $(ECHO) "Linkage            : $*.x";            \
[124]79                                $(OR32_LD) -o $@ $(OBJECTS) $(OR32_LD_OPT);     \
[88]80                                $(ECHO) "List symbols       : $*.x.nm";         \
[114]81                                $(OR32_NM)      $(OR32_NM_OPT)      $@ > $@.nm; \
[112]82                                $(ECHO) "Display info       : $*.x.txt";        \
83                                $(OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $@ > $@.txt;\
84                                echo $($(GREP) "l.jal 0" $@.txt);
[78]85
[88]86$(DIR_OBJ)/%.o                  : %.s   
87                                @\
88                                $(ECHO) "Compilation        : $*.s";            \
[117]89                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;
90#                               $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
[78]91
[88]92$(DIR_OBJ)/%.o                  : %.c
93                                @\
94                                $(ECHO) "Compilation        : $*.c";            \
[117]95                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;
96#                               $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
[78]97
[124]98$(DIR_BIN) $(DIR_OBJ)           :
99                                @\
100                                $(MKDIR) $@;
101
[78]102#-----[ Maintenance ]-------------------------------------------------------------
103clean                           :
104                                @\
[88]105                                $(ECHO) "Delete     temporary files";           \
[124]106                                $(RM)   $(DIR_OBJ)              \
[88]107                                        *~                      \
108                                        $(DIR_SRC)/*~           \
109                                        $(DIR_C)/*~             \
110                                        $(DIR_ASM)/*~           \
111                                        $(DIR_SYS)/*~           \
112                                        $(DIR_INC)/*~           \
113                                        $(DIR_LDSCRIPT)/*~      \
[78]114
[88]115clean_all                       : clean
[124]116                                $(RM)   $(DIR_BIN)
[78]117
118#-----[ Help ]--------------------------------------------------------------------
119help                            :
120                                @\
121                                $(ECHO) "";\
122                                $(ECHO) "List of directive   : ";\
[88]123                                $(ECHO) " * all              : Compile the software";\
124                                $(ECHO) " * clean            : Erase all files generates";\
125                                $(ECHO) " * clean_all        : Erase all files generates";\
[78]126                                $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.