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