removed paradyndPVM, a now-obsolete directory, from the nightly build
[dyninst.git] / Makefile
1 #
2 #
3 # First cut at a topLevel makefile for the paradyn system.
4 #
5 # $Log: Makefile,v $
6 # Revision 1.22  1995/12/20 00:16:41  tamches
7 # removed paradyndPVM, a now-obsolete directory, from the nightly build
8 #
9 # Revision 1.21  1995/12/15 22:45:39  tamches
10 # removed reference to "dag", an obsolete directory.
11 # Added visiClients/phaseTable
12 #
13 # Revision 1.20  1995/11/04 01:14:56  tamches
14 # added the new table visi (visiClients/tableVisi) to the nightly build
15 #
16 # Revision 1.19  1995/01/30 18:08:12  jcargill
17 # Major build system reorganization
18 #
19 #
20
21 # Standalone is the list of standalone binaries.  These get built
22 # first when we "make world", since they include tools for building
23 # the rest of the system.
24 #
25 # Subsystems is the list of all other pieces which should be built.
26 #
27 buildfirst      = util igen thread visi hist
28 subsystems      = bininst paradyn \
29                   rtinst rthist \
30                   paradynd paradyndSIM \
31                   visiClients/tclVisi visiClients/barchart visiClients/tableVisi visiClients/phaseTable
32
33 # This rule makes most of the normal recursive stuff.  Just about any
34 # target can be passed down to the lower-level Makefiles by listing it
35 # as a target on the next line:
36
37 # Note that the first item listed in this rule ("all") is what gets
38 # made by default if make is passed no arguments.  Don't add other
39 # target before all!
40
41 all clean install depend:
42         +for subsystem in $(buildfirst) $(subsystems); do       \
43             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
44                $(MAKE) -C $$subsystem/$(PLATFORM) $@;           \
45             else                                                \
46                 true;                                           \
47             fi                                                  \
48         done
49
50 # This rules passes down the documentation-related stuff to
51 # lower-level Makefiles in the individual "docs" directories.
52
53 docs install-man:
54         +for subsystem in $(buildfirst) $(subsystems); do       \
55             if [ -f $$subsystem/docs/Makefile ]; then           \
56                $(MAKE) -C $$subsystem/docs $@;                  \
57             else                                                \
58                 true;                                           \
59             fi                                                  \
60         done
61
62
63 # The "make world" target is set up to build things in the "correct"
64 # order for a build from scratch.  It builds things in the
65 # "buildfirst" list first, then builds everything, then installs
66 # everything.
67 #
68 # This make target doesn't go first in the Makefile, though, since we
69 # really only want to make "install" when it's specifically requested.
70 # Note that "world" doesn't do a "clean", since it's nice to be able
71 # to restart a compilation that fails without re-doing a lot of
72 # unnecessary work.
73
74 world:
75         +for subsystem in $(buildfirst); do                     \
76             if [ -f $$subsystem/$(PLATFORM)/Makefile ]; then    \
77                $(MAKE) -C $$subsystem/$(PLATFORM) all install;  \
78             else                                                \
79                 true;                                           \
80             fi                                                  \
81         done
82         $(MAKE) all
83         $(MAKE) install
84
85
86 # The "make nightly" target is what should get run automatically every
87 # night.  It uses "make world" to build things in the right order for
88 # a build from scratch.  
89 #
90
91 # Note that "nightly" should only be run on the primary build site,
92 # and does things like building documentation that don't need to be
93 # built for each different architecture.  Other "non-primary" build
94 # sites that run each night should just run "make clean world".
95
96 nightly:
97         $(MAKE) clean
98         $(MAKE) world
99         $(MAKE) docs
100         $(MAKE) install-man
101         chmod 644 /p/paradyn/man/man?/*