source: trunk/Softwares/Basic_test.or32/Makefile @ 48

Last change on this file since 48 was 48, checked in by rosiere, 17 years ago

Modification des Makefile : pas de creation inutile de shell

File size: 4.3 KB
Line 
1# common definition
2include                 Makefile.morpheo
3
4#-----[ Directory ]---------------------------------------------------------------
5
6DIR_LOCAL               = .
7DIR_LOCAL_C             = $(DIR_LOCAL)/src/c
8DIR_LOCAL_ASM           = $(DIR_LOCAL)/src/asm
9DIR_LOCAL_SYS           = $(DIR_LOCAL)/src/sys
10DIR_LOCAL_INC           = $(DIR_LOCAL)/src/c/include
11
12DIR_GLOBAL              = $(SOFT)/Global.or32
13DIR_GLOBAL_C            = $(DIR_GLOBAL)/src/c
14DIR_GLOBAL_ASM          = $(DIR_GLOBAL)/src/asm
15DIR_GLOBAL_SYS          = $(DIR_GLOBAL)/src/sys
16DIR_GLOBAL_INC          = $(DIR_GLOBAL)/include
17
18DIR_INC                 = -I$(DIR_LOCAL_INC) -I$(DIR_GLOBAL_INC)
19DIR_OBJ                 = obj
20DIR_BIN                 = bin
21
22EXE                     = soft
23
24#-----[ Files ]-------------------------------------------------------------------
25OBJ_ASM                 = $(patsubst $(DIR_LOCAL_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_LOCAL_ASM)/*.s))      \
26                          $(patsubst $(DIR_GLOBAL_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_GLOBAL_ASM)/*.s))
27OBJ_SYS                 = $(patsubst $(DIR_LOCAL_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_LOCAL_SYS)/*.s))      \
28                          $(patsubst $(DIR_GLOBAL_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_GLOBAL_SYS)/*.s))
29OBJ_C                   = $(patsubst $(DIR_LOCAL_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_LOCAL_C)/*.c))          \
30                          $(patsubst $(DIR_GLOBAL_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_GLOBAL_C)/*.c))
31
32OBJ                     = $(OBJ_SYS) $(OBJ_ASM) $(OBJ_C)
33
34#-----[ Rules ]-------------------------------------------------------------------
35.PRECIOUS               : $(DIR_BIN)/%.x $(DIR_OBJ)/%.o $(DIR_OBJ)/%.a
36
37all                     : test_env $(DIR_BIN)/$(EXE).x.txt
38
39$(DIR_BIN)/%.x.txt      : $(DIR_BIN)/%.x
40                        @\
41                        $(ECHO) "List symbols        of $*";\
42                        $(NM)      $(NM_OPT)      $^ > $@.nm;\
43                        $(ECHO) "Display information of $*";\
44                        $(OBJDUMP) $(OBJDUMP_OPT) $^ > $@;
45
46$(DIR_BIN)/%.x          : $(OBJ_SYS) $(OBJ) 
47                        @\
48                        $(ECHO) "Linkage             of $*";\
49                        $(LD) -o $@ $^ $(LD_OPT);
50
51$(DIR_OBJ)/%.o          : $(DIR_LOCAL_ASM)/%.s 
52                        @\
53                        $(ECHO) "Compile             of $*";\
54                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
55                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
56#                       @$(AS) $(AS_OPT) $^ -o $@
57
58$(DIR_OBJ)/%.o          : $(DIR_LOCAL_SYS)/%.s 
59                        @\
60                        $(ECHO) "Compile             of $*";\
61                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
62                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
63#                       @$(AS) $(AS_OPT) $^ -o $@
64
65$(DIR_OBJ)/%.o          : $(DIR_LOCAL_C)/%.c
66                        @\
67                        $(ECHO) "Compile             of $*";\
68                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
69                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
70
71$(DIR_OBJ)/%.o          : $(DIR_GLOBAL_ASM)/%.s
72                        @\
73                        $(ECHO) "Compile             of $*";\
74                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
75                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
76#                       @$(AS) $(AS_OPT) $^ -o $@
77
78$(DIR_OBJ)/%.o          : $(DIR_GLOBAL_SYS)/%.s
79                        @\
80                        $(ECHO) "Compile             of $*";\
81                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
82                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
83#                       @$(AS) $(AS_OPT) $^ -o $@
84
85$(DIR_OBJ)/%.o          : $(DIR_GLOBAL_C)/%.c
86                        @\
87                        $(ECHO) "Compile             of $*";\
88                        $(CC) $(CC_OPT) $(DIR_INC)    -o $@   -c $^ ;\
89                        $(CC) $(CC_OPT) $(DIR_INC) -S -o $@.s -c $^ ;
90
91#-----[ Environement ]------------------------------------------------------------
92test_env                :
93# ifeq ($(origin TOOLS), undefined)
94#                       $(error "variable TOOLS is undefined");
95# endif
96# ifeq ($(origin SOFT), undefined)
97#                       $(error "variable SOFT  is undefined");
98# endif
99                        @$(MKDIR) $(DIR_OBJ) $(DIR_BIN)
100
101#-----[ Maintenance ]-------------------------------------------------------------
102clean                   :
103                        @\
104                        $(ECHO) "Delete     temporary files              "`$(PWD)`;\
105                        $(RM) $(DIR_OBJ) $(DIR_BIN);\
106                        $(MAKE) clean_rec DIR_CLEAN=.;
107
108#Clean recursive
109clean_rec               :
110                        @\
111                        $(ECHO) "Delete     temporary files in directory $(DIR_CLEAN)";\
112                        $(RM) -f $(DIR_CLEAN)/*~;\
113                        for files in `$(LS) $(DIR_CLEAN)`; do                                   \
114                                if $(TEST) -d $(DIR_CLEAN)/$$files;                             \
115                                then                                                            \
116                                        $(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files;       \
117                                fi;                                                             \
118                        done;
119
120#-----[ Help ]--------------------------------------------------------------------
121help                    :
122                        @\
123                        $(ECHO) "";\
124                        $(ECHO) "List of directive   : ";\
125                        $(ECHO) " * make             : Compile the software";\
126                        $(ECHO) " * make clean       : Erase all files generates";\
127                        $(ECHO) " * make bench_list  : View all benchmark";\
128                        $(ECHO) " * make bench_exec  : Print the file \"$(FILE_BENCH)\" - it's the Workload";\
129                        $(ECHO) " * make bench       : Compile the Benchmark Suite";\
130                        $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.