Generate callgraph
This commit is contained in:
+102
@@ -0,0 +1,102 @@
|
||||
# File: Makefile
|
||||
# Author: M. P. Hayes, UCECE
|
||||
# Date: 12 Sep 2010
|
||||
# Descr: Makefile to create application Makefiles from a template.
|
||||
|
||||
# Abandon all hope ye who look in here.
|
||||
# This Makefile builds all the application Makefiles
|
||||
# using template Makefiles and a python script makemake.py that parses
|
||||
# the applications looking for #includes.
|
||||
|
||||
APPS = $(filter-out ../apps/README, $(wildcard ../apps/*))
|
||||
|
||||
MAKEAPPS = $(addsuffix .apps, $(APPS))
|
||||
MAKETEST = $(addsuffix .test, $(APPS))
|
||||
CLEANAPPS = $(addsuffix .cleanapps, $(APPS))
|
||||
CLEANTEST = $(addsuffix .cleantest, $(APPS))
|
||||
|
||||
TESTMAKEFILES = $(addsuffix /Makefile.test, $(APPS))
|
||||
APPMAKEFILES = $(addsuffix /Makefile, $(APPS))
|
||||
|
||||
APPFILEDEPS = $(addsuffix /file_dependencies.pdf, $(APPS))
|
||||
APPMODULEDEPS = $(addsuffix /module_dependencies.pdf, $(APPS))
|
||||
APPMAKEFILEDEPS = $(addsuffix /makefile_dependencies.pdf, $(APPS))
|
||||
APPBUILDDEPS = $(addsuffix /build_dependencies.pdf, $(APPS))
|
||||
APPCALLGRAPHDDEPS = $(addsuffix /callgraph.pdf, $(APPS))
|
||||
|
||||
all: testmakefiles appmakefiles apps test appfiledeps appmoduledeps appmakefiledeps appbuilddeps appcallgraph
|
||||
|
||||
clean: cleanapps cleantest
|
||||
|
||||
testmakefiles: $(TESTMAKEFILES)
|
||||
|
||||
appmakefiles: $(APPMAKEFILES)
|
||||
|
||||
../%/Makefile.test: Makefile.test.template Makefile
|
||||
(cd $(dir $@); ../../etc/makemake.py --relpath --objext=-test.o --template ../../etc/Makefile.test.template . . ../../utils ../../drivers ../../drivers/test > Makefile.test)
|
||||
|
||||
|
||||
../%/Makefile: Makefile.template Makefile makemake.py
|
||||
(cd $(dir $@); ../../etc/makemake.py --relpath --template ../../etc/Makefile.template . . ../../utils ../../fonts ../../drivers ../../drivers/avr > Makefile)
|
||||
|
||||
|
||||
appfiledeps: $(APPFILEDEPS)
|
||||
appmoduledeps: $(APPMODULEDEPS)
|
||||
appmakefiledeps: $(APPMAKEFILEDEPS)
|
||||
appbuilddeps: $(APPBUILDDEPS)
|
||||
appcallgraph: $(APPCALLGRAPH)
|
||||
|
||||
../%/file_dependencies.pdf: ../%/files.d
|
||||
./graphdeps.py $< --out $@
|
||||
|
||||
../%/module_dependencies.pdf: ../%/modules.d
|
||||
./graphdeps.py $< --modules --out $@
|
||||
|
||||
../%/makefile_dependencies.pdf: ../%/Makefile
|
||||
./graphdeps.py $< --out $@
|
||||
|
||||
../%/build_dependencies.pdf: ../%/Makefile
|
||||
./graphdeps.py $< --out $@ --showops
|
||||
|
||||
../%/callgraph.pdf: ../%/callgraph.d
|
||||
(cd $(dir $@); ../../etc/graphdeps.py $(notdir $<) --out $(notdir $@))
|
||||
|
||||
../%/files.d: ../%/Makefile
|
||||
(cd $(dir $@); ../../etc/makemake.py --relpath --files . . ../../drivers ../../drivers/avr ../../utils --exclude system.h > files.d)
|
||||
|
||||
|
||||
../%/modules.d: ../%/Makefile
|
||||
(cd $(dir $@); ../../etc/makemake.py --relpath --modules . . ../../drivers ../../drivers/avr ../../utils --exclude system > modules.d)
|
||||
|
||||
../%/callgraph.d: ../%/Makefile
|
||||
(cd $(dir $@); ../../etc/makemake.py --relpath --calls . . ../../drivers ../../drivers/avr ../../utils --exclude system > callgraph.d)
|
||||
|
||||
|
||||
# Compile all the applications.
|
||||
apps: $(MAKEAPPS)
|
||||
|
||||
.PHONY: $(MAKEAPPS)
|
||||
$(MAKEAPPS):
|
||||
-@$(MAKE) -C $(subst .apps,,$@)
|
||||
|
||||
# Compile all the test applications.
|
||||
test: $(MAKETEST)
|
||||
|
||||
.PHONY: $(MAKETEST)
|
||||
$(MAKETEST):
|
||||
-@$(MAKE) -f Makefile.test -C $(subst .test,,$@)
|
||||
|
||||
# Clean all the applications.
|
||||
cleanapps: $(CLEANAPPS)
|
||||
|
||||
.PHONY: $(CLEANAPPS)
|
||||
$(CLEANAPPS):
|
||||
-@$(MAKE) -C $(subst .cleanapps,,$@) clean
|
||||
|
||||
# Clean all the test applications.
|
||||
cleantest: $(CLEANTEST)
|
||||
|
||||
.PHONY: $(CLEANTEST)
|
||||
$(CLEANTEST):
|
||||
-@$(MAKE) -f Makefile.test -C $(subst .cleantest,,$@) clean
|
||||
|
||||
Reference in New Issue
Block a user