Stripped out obsolete "-v"/pvm_first code, substituting a warning message
[dyninst.git] / Makefile
1 #
2 # TopLevel Makefile for the Paradyn system.
3 #
4 # $Id: Makefile,v 1.25 1997/12/22 23:27:51 wylie Exp $
5 #
6
7 # "buildFirst" is the list of components which need to be built first
8 # with "make world", since they are used building the rest of the system.
9 #
10 # "subSystems" is the list of all other pieces which should be built
11 # as part of Paradyn.
12 #
13 # "dynInstAPI" is the list of additional API components (optional).
14 #
15 buildFirst      = util igen thread visi hist
16 subSystems      = paradyn rtinst rthist paradynd \
17                 visiClients/tclVisi visiClients/barchart \
18                 visiClients/tableVisi visiClients/phaseTable \
19                 visiClients/terrain
20 dynInstAPI      = dyninstAPI dyninstAPI_RT
21
22 #
23 # "fullSystem" is the complete list of all components
24 #
25 fullSystem      = $(buildFirst) $(subSystems) $(dynInstAPI)
26
27 # This rule makes most of the normal recursive stuff.  Just about any
28 # target can be passed down to the lower-level Makefiles by listing it
29 # as a target on the first line:
30
31 # Note that the first item listed in this rule ("all") is what gets
32 # made by default if make is passed no arguments.  Don't add other
33 # targets before all!
34
35 all clean install depend:
36         +for subsystem in $(fullSystem); do                     \
37             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
38                 $(MAKE) -C $$subsystem/$(PLATFORM) $@;          \
39             else                                                \
40                 true;                                           \
41             fi                                                  \
42         done
43
44 # This rules passes down the documentation-related stuff to
45 # lower-level Makefiles in the individual "docs" directories.
46
47 docs install-man:
48         +for subsystem in $(fullSystem); do                     \
49             if [ -f $$subsystem/docs/Makefile ]; then           \
50                 $(MAKE) -C $$subsystem/docs $@;                 \
51             else                                                \
52                 true;                                           \
53             fi                                                  \
54         done
55
56
57 # The "make world" target is set up to build things in the "correct"
58 # order for a build from scratch.  It builds and installs things in the
59 # "buildFirst" list first, then builds and installs the remaining
60 # Paradyn "subSystems" (excluding the currently optional dynInstAPI).
61 # NB: "make world" currently also builds the dynInstAPI components
62 # since the nightly build doesn't seem to use the "nightly" target.
63 #
64 # This make target doesn't go first in the Makefile, though, since we
65 # really only want to make "install" when it's specifically requested.
66 # Note that "world" doesn't do a "clean", since it's nice to be able
67 # to restart a compilation that fails without re-doing a lot of
68 # unnecessary work.
69
70 world:
71         +for subsystem in $(buildFirst); do                     \
72             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
73                 $(MAKE) -C $$subsystem/$(PLATFORM) all install; \
74             else                                                \
75                 true;                                           \
76             fi                                                  \
77         done
78         +for subsystem in $(dynInstAPI); do                     \
79             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
80                 $(MAKE) -C $$subsystem/$(PLATFORM) all install; \
81             else                                                \
82                 true;                                           \
83             fi                                                  \
84         done
85         +for subsystem in $(subSystems); do                     \
86             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
87                 $(MAKE) -C $$subsystem/$(PLATFORM) all install; \
88             else                                                \
89                 true;                                           \
90             fi                                                  \
91         done
92
93 # Currently optional dynInstAPI build and install
94
95 dynInstAPI:
96         +for subsystem in $(dynInstAPI); do                     \
97             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
98                 $(MAKE) -C $$subsystem/$(PLATFORM) all install; \
99             else                                                \
100                 true;                                           \
101             fi                                                  \
102         done
103
104 # The "make nightly" target is what should get run automatically every
105 # night.  It uses "make world" to build things in the right order for
106 # a build from scratch.  
107 #
108 # Note that "nightly" should only be run on the primary build site,
109 # and does things like building documentation that don't need to be
110 # built for each different architecture.  Other "non-primary" build
111 # sites that run each night should just run "make clean world".
112
113 nightly:
114         $(MAKE) clean
115         $(MAKE) world
116 #       $(MAKE) dynInstAPI
117         $(MAKE) docs
118         $(MAKE) install-man
119         chmod 644 /p/paradyn/man/man?/*