Home | History | Annotate | Download | only in tasks
      1 #
      2 # Copyright (C) 2009 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 products_pdf := $(OUT_DIR)/products.pdf
     18 products_graph := $(products_pdf:%.pdf=%.dot)
     19 
     20 $(products_graph):
     21 	@echo Product graph DOT: $@
     22 	$(hide) ( \
     23 		echo 'digraph {'; \
     24 		echo 'graph [ ratio=.5 ];'; \
     25 		$(foreach p,$(ALL_PRODUCTS), \
     26 			$(foreach d,$(PRODUCTS.$(strip $(p)).INHERITS_FROM), \
     27 			echo \"$(d)\" -\> \"$(p)\";)) \
     28 		$(foreach prod, \
     29 			$(sort $(foreach p,$(ALL_PRODUCTS), \
     30 				$(foreach d,$(PRODUCTS.$(strip $(p)).INHERITS_FROM), \
     31 					$(d))) \
     32 				$(foreach p,$(ALL_PRODUCTS),$(p))), \
     33 			echo \"$(prod)\" [ label=\"$(dir $(prod))\\n$(notdir $(prod))\"];) \
     34 		echo '}' \
     35 	) > $@
     36 
     37 # This rule doesn't include any nodes that don't inherit from
     38 # anything or don't have anything inherit from them, to make the
     39 # graph more readable.  To add that, add this line to the rule
     40 # below:
     41 #		$(foreach p,$(ALL_PRODUCTS), echo \"$(p)\";) \
     42 
     43 $(products_pdf): $(products_graph)
     44 	@echo Product graph PDF: $@
     45 	dot -Tpdf -Nshape=box -o $@ $<
     46 
     47 product-graph: $(products_pdf)
     48 
     49