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