Build with debug symbols enabled.
[oweals/cde.git] / cde / Makefile
1 # $TOG: Makefile /main/15 1999/10/12 09:33:30 mgreess $
2      RELEASE = Release 2.2.0
3      PRODUCT = CDE
4        SHELL = /bin/sh
5           RM = rm -f
6           MV = mv
7         MAKE = make
8        NMAKE = nmake
9    WORLDOPTS = 
10 WIN32WORLDOPTS = -i
11          TOP = .
12  CURRENT_DIR = .
13    CONFIGSRC = $(TOP)/config
14     IMAKESRC = $(CONFIGSRC)/imake
15    DEPENDSRC = $(CONFIGSRC)/makedepend
16    DEPENDTOP = ../..
17     IMAKETOP = ../..
18     IRULESRC = $(CONFIGSRC)/cf
19        IMAKE = $(IMAKESRC)/imake
20    IMAKE_CMD = $(IMAKE) -I$(IRULESRC) $(IMAKE_DEFINES)
21    MAKE_OPTS = -f xmakefile
22     MAKE_CMD = $(MAKE) $(MAKE_OPTS)
23    NMAKE_CMD = $(NMAKE) $(MAKE_OPTS)
24        FLAGS = $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
25
26 all:
27         @$(MAKE_CMD) xmakefile-exists || $(MAKE) all-initial
28         @$(MAKE_CMD) $@
29
30 all-initial:
31         @echo "Please begin by using make World or make Makefile.  You may"
32         @echo "find it necessary to set the make variable BOOTSTRAPCFLAGS in"
33         @echo "order to compile imake.  One common example is"
34         @echo "\"BOOTSTRAPCFLAGS=-I<dir>\", where <dir> is the top of your"
35         @echo "X11R6 source tree.  Remember to check the configuration"
36         @echo "parameters in the config directory."
37         @echo
38         @echo "We recommend that you read the release notes carefully before"
39         @echo "proceeding; they can be found under the doc directory.  If"
40         @echo "the top-level Makefile gets corrupted, copy Makefile.ini to"
41         @echo "Makefile and try again.  Do not name your log file make.log or"
42         @echo "it will be deleted."
43
44 World:
45         @echo ""
46         @echo "Building $(RELEASE) of $(PRODUCT)"
47         @echo ""
48         @case "x$(BOOTSTRAPCFLAGS)" in x) \
49         echo I hope you checked the configuration parameters in $(IRULESRC) ; \
50         echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
51         echo "" ; \
52         ;; esac;
53         @date
54         @echo ""
55         cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
56         $(MAKE) $(MFLAGS) Makefile.boot
57         $(MAKE_CMD) $(MFLAGS) VerifyOS
58         $(MAKE_CMD) $(MFLAGS) Makefiles
59         $(MAKE_CMD) $(MFLAGS) Makefiles.doc
60         $(MAKE_CMD) $(MFLAGS) clean
61         $(MAKE_CMD) $(MFLAGS) clean.doc
62         $(MAKE_CMD) $(MFLAGS) includes
63         $(MAKE_CMD) $(MFLAGS) includes.doc
64         $(MAKE_CMD) $(MFLAGS) depend
65         $(MAKE_CMD) $(MFLAGS) depend.doc
66         $(MAKE_CMD) $(MFLAGS) $(WORLDOPTS)
67         $(MAKE_CMD) $(MFLAGS) $(WORLDOPTS) all.doc
68         @echo ""
69         @date
70         @echo ""
71         @echo "Full build of $(RELEASE) of $(PRODUCT) complete."
72         @echo ""
73
74
75 World.dev:
76         @echo ""
77         @echo "Building $(RELEASE) of $(PRODUCT) excluding DOC"
78         @echo ""
79         @case "x$(BOOTSTRAPCFLAGS)" in x) \
80         echo I hope you checked the configuration parameters in $(IRULESRC) ; \
81         echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
82         echo "" ; \
83         ;; esac;
84         @date
85         @echo ""
86         cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
87         $(MAKE) $(MFLAGS) Makefile.boot
88         $(MAKE_CMD) $(MFLAGS) VerifyOS
89         $(MAKE_CMD) $(MFLAGS) Makefiles
90         $(MAKE_CMD) $(MFLAGS) clean
91         $(MAKE_CMD) $(MFLAGS) includes
92         $(MAKE_CMD) $(MFLAGS) depend
93         $(MAKE_CMD) $(MFLAGS) $(WORLDOPTS)
94         @echo ""
95         @date
96         @echo ""
97         @echo "Full build of $(RELEASE) of $(PRODUCT) excluding DOC complete."
98         @echo ""
99
100 World.doc:
101         @echo ""
102         @echo "Building $(RELEASE) of $(PRODUCT) DOC"
103         @echo ""
104         @case "x$(BOOTSTRAPCFLAGS)" in x) \
105         echo I hope you checked the configuration parameters in $(IRULESRC) ; \
106         echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
107         echo "" ; \
108         ;; esac;
109         @date
110         @echo ""
111         cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
112         $(MAKE) $(MFLAGS) Makefile.boot
113         $(MAKE_CMD) $(MFLAGS) VerifyOS
114         $(MAKE_CMD) $(MFLAGS) Makefiles.doc
115         $(MAKE_CMD) $(MFLAGS) clean.doc
116         $(MAKE_CMD) $(MFLAGS) includes.doc
117         $(MAKE_CMD) $(MFLAGS) depend.doc
118         $(MAKE_CMD) $(MFLAGS) $(WORLDOPTS) all.doc
119         @echo ""
120         @date
121         @echo ""
122         @echo "Full build of $(RELEASE) of $(PRODUCT) DOC complete."
123         @echo ""
124
125 .PRECIOUS: Makefile
126
127 # This is just a sequence of bootstrapping steps we have to do.
128 # The steps are listed as separate targets so clearmake can wink in
129 # the Makefile.proto files.
130 Makefile.boot: imake.proto $(DEPENDSRC)/Makefile.proto depend.bootstrap $(IMAKESRC)/Makefile.proto imake.bootstrap
131
132 imake.proto:
133         cd $(IMAKESRC) && $(MAKE) $(FLAGS)
134         $(RM) $(DEPENDSRC)/Makefile.proto
135
136 $(DEPENDSRC)/Makefile.proto:
137         $(IMAKE_CMD) -s $(DEPENDSRC)/Makefile.proto -f $(DEPENDSRC)/Imakefile -DTOPDIR=$(DEPENDTOP) -DCURDIR=$(DEPENDSRC)
138
139 depend.bootstrap:
140         cd $(DEPENDSRC) && $(RM) -r Makefile Makefile.dep makedepend *.o bootstrap
141         cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto bootstrap
142
143 $(IMAKESRC)/Makefile.proto:
144         $(IMAKE_CMD) -s $(IMAKESRC)/Makefile.proto -f $(IMAKESRC)/Imakefile -DTOPDIR=$(IMAKETOP) -DCURDIR=$(IMAKESRC)
145
146 imake.bootstrap:
147         cd $(IMAKESRC) && $(MAKE) -f Makefile.proto bootstrapdepend
148         cd $(IMAKESRC) && $(MAKE) $(FLAGS) bootstrap
149         cd $(IMAKESRC) && $(MAKE) -f Makefile.proto all 
150         -@if [ -f xmakefile ]; then set -x; \
151           $(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak; \
152           else exit 0; fi
153         $(MAKE) $(MFLAGS) xmakefile
154
155 Makefile::
156         $(MAKE) $(MFLAGS) xmakefile
157
158 xmakefile: Imakefile
159         $(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
160
161 World.Win32:
162         @echo :
163         @echo Building $(RELEASE) of $(PRODUCT).
164         @echo :
165         @echo :
166         cd $(IMAKESRC)
167         $(NMAKE) -f Makefile.ini clean.Win32
168         $(NMAKE) -f Makefile.ini imake.exe
169         cd ..\..
170         -if exist xmakefile.bak del xmakefile.bak
171         -if exist xmakefile ren xmakefile xmakefile.bak
172         $(IMAKE:/=\) -s xmakefile -I$(IRULESRC) $(IMAKE_DEFINES) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
173         $(NMAKE_CMD) $(MFLAGS) VerifyOS
174         $(NMAKE_CMD) $(MFLAGS) Makefiles
175         $(NMAKE_CMD) $(MFLAGS) clean
176         $(NMAKE_CMD) $(MFLAGS) includes
177         $(NMAKE_CMD) $(MFLAGS) depend
178         $(NMAKE_CMD) $(MFLAGS) $(WIN32WORLDOPTS)
179         @echo :
180         @echo :
181         @echo Full build of $(RELEASE) of $(PRODUCT) complete.
182         @echo :
183
184
185 # don't allow any default rules in this Makefile
186 .SUFFIXES:
187
188 # a copy of every rule that might be invoked at top level
189
190 clean:
191             $(MAKE_CMD) $@
192 dangerous_strip_clean:
193             $(MAKE_CMD) $@
194 depend:
195             $(MAKE_CMD) $@
196 Everything:
197             $(MAKE_CMD) $@
198 external.ln:
199             $(MAKE_CMD) $@
200 includes:
201             $(MAKE_CMD) $@
202 install.ln:
203             $(MAKE_CMD) $@
204 install.man:
205             $(MAKE_CMD) $@
206 install:
207             $(MAKE_CMD) $@
208 Makefiles:
209             $(MAKE_CMD) $@
210 man_keywords:
211             $(MAKE_CMD) $@
212 tags:
213             $(MAKE_CMD) $@
214 VerifyOS:
215             $(MAKE_CMD) $@
216
217 # dev versions
218
219 Everything.dev:
220             $(MAKE_CMD) $@
221
222 # doc versions
223
224 clean.doc:
225             $(MAKE_CMD) $@
226 depend.doc:
227             $(MAKE_CMD) $@
228 Everything.doc:
229             $(MAKE_CMD) $@
230 includes.doc:
231             $(MAKE_CMD) $@
232 install.man.doc:
233             $(MAKE_CMD) $@
234 install.doc:
235             $(MAKE_CMD) $@
236 Makefiles.doc:
237             $(MAKE_CMD) $@
238 tags.doc:
239             $(MAKE_CMD) $@