source: trunk/IPs/systemC/processor/Morpheo/Documentation/Makefile.Documentation

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

1) Add modelsim simulation systemC
2) Modelsim cosimulation systemC / VHDL is not finish !!!! (cf execute_queue and write_unit)
3) Add multi architecture
5) Add template for comparator, multiplier and divider
6) Change Message
Warning) Various test macro have change, many selftest can't compile

  • Property svn:executable set to *
File size: 12.5 KB
Line 
1ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
2 $(error "variable MORPHEO_TOPLEVEL is undefined");
3else
4 include $(MORPHEO_TOPLEVEL)/Makefile.tools
5endif
6
7#--------------------------------------------------------------------------------
8#-----[ Variable ]---------------------------------------------------------------
9#--------------------------------------------------------------------------------
10
11ENV_LATEX = export TEXINPUTS=$(DIR_INCLUDE):$$TEXINPUTS
12LATEX_WITH_ENV = $(ENV_LATEX); $(LATEX)
13
14#--------------------------------------------------------------------------------
15#-----[ Directory ]--------------------------------------------------------------
16#--------------------------------------------------------------------------------
17
18# DIR_DOCUMENTATION must be set previously
19
20DIR_TOPLEVEL = $(DIR_DOCUMENTATION)
21DIR_TOPLEVEL_SCHEMA = $(DIR_TOPLEVEL)/fig
22DIR_TOPLEVEL_GRAPH = $(DIR_TOPLEVEL)/dot
23DIR_TOPLEVEL_PDF = $(DIR_TOPLEVEL)/pdf
24DIR_DOC = .
25DIR_TEX = ./tex
26DIR_SCHEMA = ./fig
27DIR_GRAPH = ./dot
28DIR_SCHEMA_EPS = ./eps
29
30#--------------------------------------------------------------------------------
31#-----[ Files ]------------------------------------------------------------------
32#--------------------------------------------------------------------------------
33
34TEX_FILES = $(wildcard $(DIR_DOC)/*.tex)
35DVI_FILES = $(patsubst $(DIR_DOC)/%.tex,%.dvi,$(TEX_FILES))
36PS_FILES = $(patsubst $(DIR_DOC)/%.tex,%.ps ,$(TEX_FILES))
37PDF_FILES = $(patsubst $(DIR_DOC)/%.tex,%.pdf,$(TEX_FILES))
38EPS_FILES = $(patsubst $(DIR_GRAPH)/%.dot,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_GRAPH)/*.dot)) \
39 $(patsubst $(DIR_SCHEMA)/%.fig,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_SCHEMA)/*.fig)) \
40 $(patsubst $(DIR_SCHEMA)/%.eps,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_SCHEMA)/*.eps)) \
41 $(patsubst $(DIR_TOPLEVEL_GRAPH)/%.dot,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_TOPLEVEL_GRAPH)/*.dot)) \
42 $(patsubst $(DIR_TOPLEVEL_SCHEMA)/%.fig,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_TOPLEVEL_SCHEMA)/*.fig)) \
43 $(patsubst $(DIR_TOPLEVEL_SCHEMA)/%.eps,$(DIR_SCHEMA_EPS)/%.eps,$(wildcard $(DIR_TOPLEVEL_SCHEMA)/*.eps))
44
45#--------------------------------------------------------------------------------
46#-----[ Rules ]------------------------------------------------------------------
47#--------------------------------------------------------------------------------
48
49#--------------------------------------------------------------------------------
50# The reset of this file shall not be editted
51#--------------------------------------------------------------------------------
52
53vpath %.tex $(DIR_TEX)
54vpath %.dot $(DIR_GRAPH):$(DIR_TOPLEVEL_GRAPH)
55vpath %.fig $(DIR_SCHEMA):$(DIR_TOPLEVEL_SCHEMA)
56vpath %.eps $(DIR_SCHEMA):$(DIR_TOPLEVEL_SCHEMA)
57
58
59.PHONY : all view view_global view_local clean help
60.SECONDARY : $(DVI_FILES) $(PS_FILES) $(PDF_FILES) $(EPS_FILES) $(DIR_SCHEMA_EPS)
61
62all_documentation : $(EPS_FILES)
63 @\
64 $(MAKE) $(PDF_FILES)
65
66#--------------------------------------------------------------------------------
67# Generation of the formatted text:
68# regular flow tex -> dvi -> ps -> pdf.
69#--------------------------------------------------------------------------------
70
71%.pdf : %.ps $(DIR_TOPLEVEL_PDF)
72 @\
73 $(ECHO) "Generate files : $*.pdf"; \
74 $(PS2PDF) $< $@; \
75 $(CP) $@ $(DIR_TOPLEVEL_PDF);
76
77%.ps : %.dvi
78 @\
79 $(ECHO) "Generate files : $*.ps"; \
80 $(DVIPS) -o $@ $<;
81
82%.dvi : %.tex $(DIR_TEX)/*
83 @\
84 $(ECHO) "Generate files : $*.dvi"; \
85 $(LATEX_WITH_ENV) $<; \
86 if $(TEST) $$? -eq 0; then \
87 $(LATEX_WITH_ENV) $< > /dev/null; \
88 citation=`$(GREP) "citation" $*.aux`; \
89 if $(TEST) -n "$$citation" ; then \
90 $(BIBTEX) $* ; \
91 fi; \
92 $(LATEX_WITH_ENV) $< > /dev/null; \
93 $(LATEX_WITH_ENV) $< > /dev/null; \
94 fi;
95
96#--------------------------------------------------------------------------------
97# The figures directory
98#--------------------------------------------------------------------------------
99$(DIR_SCHEMA_EPS) :
100 @\
101 $(ECHO) "Make directory : $@"; \
102 $(MKDIR) $@;
103
104$(DIR_TOPLEVEL_PDF) :
105 @\
106 $(ECHO) "Make directory : $@"; \
107 $(MKDIR) $@;
108
109$(DIR_SCHEMA_EPS)/%.eps : %.eps $(DIR_SCHEMA_EPS)
110 @\
111 $(ECHO) "Generate files : $*.eps"; \
112 $(CP) $< $(DIR_SCHEMA_EPS);
113
114$(DIR_SCHEMA_EPS)/%.eps : %.fig $(DIR_SCHEMA_EPS)
115 @\
116 $(ECHO) "Generate files : $*.eps"; \
117 $(FIG2EPS) $< $@;
118
119$(DIR_SCHEMA_EPS)/%.eps : %.dot $(DIR_SCHEMA_EPS)
120 @\
121 $(ECHO) "Generate files : $*.eps"; \
122 $(DOT) -Tfig -o $(DIR_SCHEMA_EPS)/${*}.fig $<; \
123 $(FIG2EPS) $(DIR_SCHEMA_EPS)/${*}.fig $@; \
124 $(RM) $(DIR_SCHEMA_EPS)/${*}.fig;
125
126#--------------------------------------------------------------------------------
127# View
128#--------------------------------------------------------------------------------
129view_local : all
130 @\
131 declare SELECT_FILE; \
132 declare SELECT_FORMAT; \
133 declare SELECT_VIEWER; \
134 \
135 \
136 $(ECHO) ""; \
137 $(ECHO) "Choose a document : (0 by default)"; \
138 \
139 declare -i CPT; \
140 declare -i NUM_FILE; \
141 declare -a FILES; \
142 \
143 CPT=0; \
144 for files in $(PDF_FILES); do \
145 files=`$(BASENAME) $$files .pdf`; \
146 $(ECHO) "$$CPT) $$files"; \
147 FILES[$$CPT]=$$files; \
148 CPT=$$(($$CPT+1)); \
149 done; \
150 \
151 if $(TEST) "$$CPT" -eq "0"; then \
152 $(ECHO) "None document found"; \
153 exit; \
154 fi; \
155 \
156 read NUM_FILE; \
157 \
158 if $(TEST) "$$NUM_FILE" -ge "$$CPT"; then \
159 NUM_FILE=0; \
160 fi; \
161 \
162 SELECT_FILE=$${FILES[$$NUM_FILE]}; \
163 \
164 \
165 $(ECHO) "Document selected : $$SELECT_FILE"; \
166 $(ECHO) ""; \
167 $(ECHO) "Choose a format : (0 by default)"; \
168 \
169 declare -i NUM_FORMAT; \
170 declare -a FORMAT; \
171 declare -a VIEWER; \
172 \
173 PRINT=( "pdf (fullscreen)" "pdf" "ps" "dvi"); \
174 FORMAT=("pdf" "pdf" "ps" "dvi"); \
175 VIEWER=("$(VIEWPDF_FS)" "$(VIEWPDF)" "$(VIEWPS)" "$(VIEWDVI)"); \
176 \
177 CPT=0; \
178 while [ $$CPT -lt $${#FORMAT[*]} ]; do \
179 $(ECHO) "$$CPT) $${PRINT[$$CPT]}"; \
180 CPT=$$(($$CPT+1)); \
181 done; \
182 read NUM_FORMAT; \
183 \
184 if $(TEST) "$$NUM_FORMAT" -ge "$$CPT"; then \
185 NUM_FORMAT=0; \
186 fi; \
187 \
188 SELECT_FORMAT=$${FORMAT[$$NUM_FORMAT]}; \
189 SELECT_VIEWER=$${VIEWER[$$NUM_FORMAT]}; \
190 $(ECHO) "Format selected : $$SELECT_FORMAT"; \
191 $(ECHO) ""; \
192 \
193 $$SELECT_VIEWER "$$SELECT_FILE.$$SELECT_FORMAT" & \
194 \
195 $(ECHO) "";
196
197view_global : all
198 @\
199 declare SELECT_FILE; \
200 declare SELECT_FORMAT; \
201 declare SELECT_VIEWER; \
202 \
203 \
204 $(ECHO) ""; \
205 $(ECHO) "Choose a document : (0 by default)"; \
206 \
207 declare -i CPT; \
208 declare -i NUM_FILE; \
209 declare -a FILES; \
210 \
211 CPT=0; \
212 for files in $(wildcard $(DIR_TOPLEVEL_PDF)/*.pdf); do \
213 files=`$(BASENAME) $$files .pdf`; \
214 $(ECHO) "$$CPT) $$files"; \
215 FILES[$$CPT]=$(DIR_TOPLEVEL_PDF)/$$files; \
216 CPT=$$(($$CPT+1)); \
217 done; \
218 \
219 if $(TEST) "$$CPT" -eq "0"; then \
220 $(ECHO) "None document found"; \
221 exit; \
222 fi; \
223 \
224 read NUM_FILE; \
225 \
226 if $(TEST) "$$NUM_FILE" -ge "$$CPT"; then \
227 NUM_FILE=0; \
228 fi; \
229 \
230 SELECT_FILE=$${FILES[$$NUM_FILE]}; \
231 \
232 \
233 $(ECHO) "Document selected : $$SELECT_FILE"; \
234 $(ECHO) ""; \
235 $(ECHO) "Choose a format : (0 by default)"; \
236 \
237 declare -i NUM_FORMAT; \
238 declare -a FORMAT; \
239 declare -a VIEWER; \
240 \
241 PRINT=( "pdf (fullscreen)" "pdf" ); \
242 FORMAT=("pdf" "pdf" ); \
243 VIEWER=("$(VIEWPDF_FS)" "$(VIEWPDF)"); \
244 \
245 CPT=0; \
246 while [ $$CPT -lt $${#FORMAT[*]} ]; do \
247 $(ECHO) "$$CPT) $${PRINT[$$CPT]}"; \
248 CPT=$$(($$CPT+1)); \
249 done; \
250 read NUM_FORMAT; \
251 \
252 if $(TEST) "$$NUM_FORMAT" -ge "$$CPT"; then \
253 NUM_FORMAT=0; \
254 fi; \
255 \
256 SELECT_FORMAT=$${FORMAT[$$NUM_FORMAT]}; \
257 SELECT_VIEWER=$${VIEWER[$$NUM_FORMAT]}; \
258 $(ECHO) "Format selected : $$SELECT_FORMAT"; \
259 $(ECHO) ""; \
260 \
261 $$SELECT_VIEWER "$$SELECT_FILE.$$SELECT_FORMAT" & \
262 \
263 $(ECHO) "";
264
265
266#--------------------------------------------------------------------------------
267# Cleaning
268#--------------------------------------------------------------------------------
269
270clean : local_clean
271 @\
272 $(ECHO) "Delete temporary files "$(PWD); \
273 $(RM) $(DIR_SCHEMA_EPS); \
274 $(RM) $(DVI_FILES) $(PS_FILES) $(PDF_FILES); \
275 $(MAKE) clean_rec DIR_CLEAN=$(PWD);
276
277clean_all : clean
278
279#Clean recursive
280clean_rec :
281 @\
282 $(ECHO) "Delete temporary files in directory $(DIR_CLEAN)"; \
283 $(RM) $(DIR_CLEAN)/*~ \
284 $(DIR_CLEAN)/*.bak \
285 $(DIR_CLEAN)/*.aux \
286 $(DIR_CLEAN)/*.bbl \
287 $(DIR_CLEAN)/*.blg \
288 $(DIR_CLEAN)/*.bmt \
289 $(DIR_CLEAN)/*.log \
290 $(DIR_CLEAN)/*.mtc* \
291 $(DIR_CLEAN)/*.toc \
292 $(DIR_CLEAN)/*.idx \
293 $(DIR_CLEAN)/*.ilg \
294 $(DIR_CLEAN)/*.ind \
295 $(DIR_CLEAN)/*.out \
296 $(DIR_CLEAN)/*.nav \
297 $(DIR_CLEAN)/*.maf \
298 $(DIR_CLEAN)/*.snm \
299 $(DIR_CLEAN)/missfont.log; \
300 for files in `$(LS) $(DIR_CLEAN)`; do \
301 if $(TEST) -d $(DIR_CLEAN)/$$files; \
302 then \
303 $(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files; \
304 fi; \
305 done;
306
307#--------------------------------------------------------------------------------
308# Help
309#--------------------------------------------------------------------------------
310
311help :
312 @\
313 $(ECHO) " -----[ Documentation ]------------------------------";\
314 $(ECHO) ""; \
315 $(ECHO) " * all_documentation : Generate all documents"; \
316 $(ECHO) " * clean : Erase all generated files"; \
317 $(ECHO) " * clean_all : cf clean"; \
318 $(ECHO) " * help : Print this message"; \
319 $(ECHO) " * view : View local documents"; \
320 $(ECHO) " * view_view : View all documents"; \
321 $(ECHO) "";
Note: See TracBrowser for help on using the repository browser.