Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Softwares/Makefile.Software

    r81 r88  
    1 include                         $(MORPHEO_TOPLEVEL)/Makefile.tools
     1#
     2# $Id$
     3#
     4# [ Description ]
     5#
     6# Makefile
     7#
     8
     9ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
     10        $(error "variable MORPHEO_TOPLEVEL is undefined")
     11else
     12        include $(MORPHEO_TOPLEVEL)/Makefile.tools
     13endif
    214
    315#-----[ Directory ]---------------------------------------------------------------
    4 DIRECTORY_OBJ                   = obj
    5 DIRECTORY_BIN                   = bin
     16DIR_OBJ                         = obj
     17DIR_BIN                         = bin
    618
    719EXE                             = soft
    8 
    9 #-----[ Files ]-------------------------------------------------------------------
    10 OBJECTS                         = $(OBJECTS_SYS) $(OBJECTS_ASM) $(OBJECTS_C)
    1120
    1221#-----[ To the compilation ]------------------------------------------------------
     
    3746# -DHAVE_LIBC
    3847OR32_AS_OPT                     =
    39 OR32_LD_OPT                     = -T$(DIRECTORY_LDSCRIPT)/or32.ld $(LIBRARY) 
     48OR32_LD_OPT                     = -T$(DIR_LDSCRIPT)/or32.ld $(LIBRARY) 
    4049OR32_OBJDUMP_OPT                = -D
    4150OR32_NM_OPT                     = -n
    4251
    4352#-----[ Rules ]-------------------------------------------------------------------
    44 .PRECIOUS                       : $(DIRECTORY_BIN)/%.x.txt $(DIRECTORY_BIN)/%.x $(DIRECTORY_OBJ)/%.o
     53.PRECIOUS                       : $(DIR_BIN)/%.x.txt $(DIR_BIN)/%.x $(DIR_OBJ)/%.o
    4554
    46 all                             : test_env $(DIRECTORY_BIN)/$(EXE).x.txt
     55vpath   %.h     $(DIR_INC)
     56vpath   %.c     $(DIR_C)
     57vpath   %.s     $(DIR_ASM):$(DIR_SYS)
     58vpath   %.o     $(DIR_OBJ)
     59vpath   %.x     $(DIR_BIN)
    4760
    48 $(DIRECTORY_BIN)/%.x.txt        : $(DIRECTORY_BIN)/%.x
     61all                             :
    4962                                @\
    50                                 $(ECHO) "List symbols       : $*";              \
    51                                 $(OR32_NM)      $(OR32_NM_OPT)      $^ > $@.nm;         \
    52                                 $(ECHO) "Display info       : $*";              \
    53                                 $(OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $^ > $@;
     63                                $(MKDIR) $(DIR_BIN) $(DIR_OBJ);                 \
     64                                $(MAKE)  $(DIR_BIN)/$(EXE).x;
    5465
    55 $(DIRECTORY_BIN)/%.x            : $(OBJECTS)
    56                                 @                                               \
    57                                 $(ECHO) "Linkage            : $*";              \
    58                                 $(OR32_LD) -o $@ $^ $(OR32_LD_OPT);
     66$(DIR_BIN)/%.x                  : $(OBJECTS)
     67                                @\
     68                                $(ECHO) "Linkage            : $*.x";            \
     69                                $(OR32_LD) -o $@ $^ $(OR32_LD_OPT);             \
     70                                $(ECHO) "List symbols       : $*.x.nm";         \
     71                                $(OR32_NM)      $(OR32_NM_OPT)      $^ > $@.nm; \
     72                                $(ECHO) "Display info       : $*.x.txt";                \
     73                                $(OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $^ > $@.txt;
    5974
    60 $(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_ASM)/%.s 
    61                                 @                                               \
    62                                 $(ECHO) "Compilation        : $*";              \
    63                                 $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;           \
     75$(DIR_OBJ)/%.o                  : %.s   
     76                                @\
     77                                $(ECHO) "Compilation        : $*.s";            \
     78                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;   \
    6479                                $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
    6580#                               @$(OR32_AS) $(OR32_AS_OPT) $^ -o $@
    6681
    67 $(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_SYS)/%.s 
    68                                 @                                               \
    69                                 $(ECHO) "Compilation        : $*";              \
    70                                 $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;           \
     82$(DIR_OBJ)/%.o                  : %.c
     83                                @\
     84                                $(ECHO) "Compilation        : $*.c";            \
     85                                $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;   \
    7186                                $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
    72 #                               @$(OR32_AS) $(OR32_AS_OPT) $^ -o $@
    73 
    74 $(DIRECTORY_OBJ)/%.o            : $(DIRECTORY_C)/%.c
    75                                 @                                               \
    76                                 $(ECHO) "Compilation        : $*";              \
    77                                 $(OR32_CC) $(OR32_CC_OPT)     -o $@   -c $^ ;           \
    78                                 $(OR32_CC) $(OR32_CC_OPT)  -S -o $@.s -c $^ ;
    79 
    80 #-----[ Environement ]------------------------------------------------------------
    81 test_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)
    8987
    9088#-----[ Maintenance ]-------------------------------------------------------------
    9189clean                           :
    9290                                @\
    93                                 $(ECHO) "Delete     temporary files              "`$(PWD)`;             \
    94                                 $(RM) $(DIRECTORY_OBJ) $(DIRECTORY_BIN);                                                \
    95                                 $(MAKE) clean_rec DIRECTORY_CLEAN=.;
     91                                $(ECHO) "Delete     temporary files";           \
     92                                $(RM)   $(DIR_OBJ) $(DIR_BIN)   \
     93                                        *~                      \
     94                                        $(DIR_SRC)/*~           \
     95                                        $(DIR_C)/*~             \
     96                                        $(DIR_ASM)/*~           \
     97                                        $(DIR_SYS)/*~           \
     98                                        $(DIR_INC)/*~           \
     99                                        $(DIR_LDSCRIPT)/*~      \
    96100
    97 clean_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;
     101clean_all                       : clean
    107102
    108103#-----[ Help ]--------------------------------------------------------------------
     
    111106                                $(ECHO) "";\
    112107                                $(ECHO) "List of directive   : ";\
    113                                 $(ECHO) " * make             : Compile the software";\
    114                                 $(ECHO) " * make clean       : Erase all files generates";\
     108                                $(ECHO) " * all              : Compile the software";\
     109                                $(ECHO) " * clean            : Erase all files generates";\
     110                                $(ECHO) " * clean_all        : Erase all files generates";\
    115111                                $(ECHO) "";
Note: See TracChangeset for help on using the changeset viewer.