source: trunk/IPs/systemC/Environment/Makefile.Environment @ 98

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

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 3.1 KB
RevLine 
[88]1ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
2        $(error "variable MORPHEO_TOPLEVEL is undefined");
3else
4        include $(MORPHEO_TOPLEVEL)/Makefile.tools
5        include $(MORPHEO_TOPLEVEL)/Makefile.flags
6endif
[78]7
8#-----[ Directory ]----------------------------------------
[88]9ENTITY                         ?=       Environment
[78]10
[88]11DIR_TMP                         =       $(MORPHEO_TMP)/$(ENTITY)
12DIR_TST                         =       ./selftest
13DIR_INC                         =       ./include
14DIR_SRC                         =       ./src
15DIR_OBJ                         =       ./obj
16DIR_BIN                         =       $(DIR_TMP)/bin
17
[78]18#-----[ Compilation ]--------------------------------------
19INCDIR                          = $(SYSTEMC_INCDIR_$(SIMULATOR))        \
[81]20                                  -I$(DIR_INC)                          \
21                                  -I../processor/Morpheo
[78]22
[81]23LIBDIR                          = $(SYSTEMC_LIBDIR_$(SIMULATOR))
[78]24
[88]25LIBNAME                         = -lbfd                                 \
26                                  -liberty                              \
27                                  $(SYSTEMC_LIBNAME_$(SIMULATOR))
[78]28
[81]29FLAGS                           = $(SYSTEMC_CFLAGS_$(SIMULATOR))
[78]30
[81]31MORPHEO_CC_FLAGS                = $(MORPHEO_FLAGS) $(CC_FLAGS)           $(INCDIR)
32MORPHEO_CXX_FLAGS               = $(MORPHEO_FLAGS) $(CXX_FLAGS) $(FLAGS) $(INCDIR)
33MORPHEO_L_FLAGS                 = $(MORPHEO_FLAGS) $(CXX_FLAGS) $(FLAGS) $(LIBDIR)
34
[78]35#-----[ Variable ]-----------------------------------------
36
[81]37OBJECTS                         = $(patsubst $(DIR_SRC)/%.cpp,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SRC)/*.cpp)) \
38                                  $(patsubst $(DIR_SRC)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SRC)/*.c))
[78]39OBJECTS_BIN                     = $(patsubst $(DIR_TST)/%.cpp,$(DIR_OBJ)/%.o,$(wildcard $(DIR_TST)/*.cpp))
40
41HEADERS                         = $(wildcard $(DIR_INC)/*.h)
42
43EXE                             = $(DIR_BIN)/soft.x
44
[81]45EXEC_PREFIX                     =
46#$(VALGRIND)
47
[78]48#-----[ Rules ]--------------------------------------------
49
[88]50vpath   %.h     $(DIR_INC)
51vpath   %.c     $(DIR_SRC)
52vpath   %.cpp   $(DIR_SRC):$(DIR_TST)
53vpath   %.o     $(DIR_OBJ)
54
[78]55.PRECIOUS                       : $(DIR_OBJ)/%.o $(DIR_BIN)/%.x
56
57test_env                        :
[81]58                                @\
59                                $(ECHO) "-------------------| $(ENTITY)"
[78]60
[88]61$(DIR_OBJ)/%.o                  : %.cpp $(HEADERS)
[78]62                                @\
63                                $(ECHO) "Compilation        : $*";\
[85]64                                $(CXX) $(MORPHEO_CXX_FLAGS) -c -o $@ $<;
[78]65
[88]66$(DIR_OBJ)/%.o                  : %.c $(HEADERS)
[81]67                                @\
68                                $(ECHO) "Compilation        : $*";\
[85]69                                $(CC)  $(MORPHEO_CC_FLAGS)  -c -o $@ $<;
[81]70
[78]71$(DIR_BIN)/%.x                  : $(OBJECTS_DEPS) $(OBJECTS) $(OBJECTS_BIN)
72                                \
73                                $(ECHO) "Compilation        : $*";\
[81]74                                $(CXX) $(MORPHEO_L_FLAGS)      -o $@ $^ $(LIBNAME);
[78]75
76$(DIR_OBJ)                      :
77                                @\
78                                $(ECHO) "Create directory   : $@";\
79                                $(MKDIR) $@
80
81$(DIR_BIN)                      :
82                                @\
83                                $(ECHO) "Create directory   : $@";\
84                                $(MKDIR) $@
85
86
[88]87exe                             : all $(DIR_BIN)
[78]88                                @\
[88]89                                $(MAKE) $(EXE); \
90                                export SYSTEMC=$(SYSTEMC_$(SIMULATOR)) ; $(EXEC_PREFIX) $(EXE) $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR))
[78]91
[81]92
[88]93all_environment                 : test_env $(DIR_OBJ)
[78]94                                @\
[88]95                                $(MAKE) $(OBJECTS_DEPS) $(OBJECTS) $(OBJECTS_BIN)
[78]96
[80]97environment_clean               :
[78]98                                @\
99                                $(ECHO) "Delete     temporary files in directory "$(PWD);\
100                                $(RM)   *~              \
101                                        $(DIR_OBJ)      \
102                                        $(DIR_BIN)      \
103                                        $(DIR_TST)/*~   \
104                                        $(DIR_SRC)/*~   \
[81]105                                        $(DIR_INC)/*~   \
106                                        *.dot           \
107                                        *.txt;
[78]108
[80]109environment_help                :
[78]110                                @\
[80]111                                $(ECHO) " -----[ Environment ]------------------------------";\
[78]112                                $(ECHO) "";\
[88]113                                $(ECHO) " * exe             : execute testbench";\
114                                $(ECHO) " * test_env        : test if environnment's variable is set";\
115                                $(ECHO) " * all_environment : generate object";\
[78]116                                $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.