3a69b3ac |
1 | # Makefile for GNU Assembler |
2 | # Copyright (C) 1987, 1988, 1990, 1991 Free Software Foundation, Inc. |
3 | |
4 | #This file is part of GNU GAS. |
5 | |
6 | #GNU GAS is free software; you can redistribute it and/or modify |
7 | #it under the terms of the GNU General Public License as published by |
8 | #the Free Software Foundation; either version 1, or (at your option) |
9 | #any later version. |
10 | |
11 | #GNU GAS is distributed in the hope that it will be useful, |
12 | #but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | #GNU General Public License for more details. |
15 | |
16 | #You should have received a copy of the GNU General Public License |
17 | #along with GNU GAS; see the file COPYING. If not, write to |
18 | #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
19 | |
20 | # $Id$ |
21 | |
22 | # The targets for external use include: |
23 | # all, doc, proto, install, uninstall, includes, TAGS, |
24 | # clean, cleanconfig, realclean, stage1, stage2, stage3, stage4. |
25 | |
26 | # Variables that exist for you to override. |
27 | # See below for how to change them for certain systems. |
28 | |
29 | ALLOCA = |
30 | CFLAGS = -g $(XCFLAGS) # -I$(srcdir)/../include |
31 | INTERNAL_CFLAGS = $(CROSS) |
32 | OLDCC = cc |
33 | BISON = bison |
34 | BISONFLAGS = -v |
35 | AR = ar |
36 | OLDAR_FLAGS = qc |
37 | AR_FLAGS = rc |
38 | SHELL = /bin/sh |
39 | # on sysV, define this as cp. |
40 | INSTALL = install -c |
41 | # These permit overriding just for certain files. |
42 | INSTALL_PROGRAM = $(INSTALL) |
43 | INSTALL_FILE = $(INSTALL) |
44 | |
45 | # Define this as & to perform parallel make on a Sequent. |
46 | # Note that this has some bugs, and it seems currently necessary |
47 | # to compile all the gen* files first by hand to avoid erroneous results. |
48 | P = |
49 | |
50 | # How to invoke ranlib. |
51 | RANLIB = ranlib |
52 | # Test to use to see whether ranlib exists on the system. |
53 | RANLIB_TEST = [ -f /usr/bin/ranlib -o -f /bin/ranlib ] |
54 | |
55 | # CFLAGS for use with OLDCC, for compiling gnulib. |
56 | # NOTE: -O does not work on some Unix systems! |
57 | CCLIBFLAGS = -O |
58 | |
59 | # Version of ar to use when compiling gnulib. |
60 | OLDAR = ar |
61 | |
62 | version=`./gcc -dumpversion` |
63 | |
64 | # Directory where sources are, from where we are. |
65 | srcdir = . |
66 | # Common prefix for installation directories. |
67 | # NOTE: This directory must exist when you start installation. |
68 | prefix = /usr/local |
69 | # Directory in which to put the executable for the command `gcc' |
70 | bindir = $(prefix)/bin |
71 | # Directory in which to put the directories used by the compiler. |
72 | libdir = $(prefix)/lib |
73 | # Directory in which the compiler finds executables, libraries, etc. |
74 | libsubdir = $(libdir)/gcc/$(target)/$(version) |
75 | # Number to put in man-page filename. |
76 | manext = 1 |
77 | # Directory in which to put man pages. |
78 | mandir = $(prefix)/man/man$(manext) |
79 | |
80 | # Additional system libraries to link with. |
81 | CLIB= |
82 | |
83 | # Change this to a null string if obstacks are installed in the |
84 | # system library. |
85 | OBSTACK=obstack.o |
86 | |
87 | # Specify the rule for actually making gnulib. |
88 | GNULIB = gnulib.portable |
89 | |
90 | # Specify the rule for actually making gnulib2. |
91 | GNULIB2 = gnulib2.portable |
92 | |
93 | # List of extra C and assembler files to add to gnulib. |
94 | # Assembler files should have names ending in `.asm'. |
95 | LIBFUNCS_EXTRA = |
96 | |
97 | # Program to convert libraries. |
98 | LIBCONVERT = |
99 | |
100 | # Control whether header files are installed. |
101 | INSTALL_HEADERS=install-headers |
102 | |
103 | # Change this to empty to prevent installing limits.h |
104 | LIMITS_H = limits.h |
105 | |
106 | # Directory to link to, when using the target `maketest'. |
107 | DIR = ../gcc |
108 | |
109 | # For better debugging under COFF, define SEPARATE_AUX_OUTPUT in config.h |
110 | # and define the following variable as `aux-output2.c' in make-... |
111 | AUX_OUTPUT2 = |
112 | |
113 | # Flags to use when cross-building GCC. |
114 | # Prefix to apply to names of object files when using them |
115 | # to run on the machine we are compiling on. |
116 | HOST_PREFIX= |
117 | # Prefix to apply to names of object files when compiling them |
118 | # to run on the machine we are compiling on. |
119 | # The default for this variable is chosen to keep these rules |
120 | # out of the way of the other rules for compiling the same source files. |
121 | HOST_PREFIX_1=loser- |
122 | HOST_CC=$(CC) |
123 | HOST_CFLAGS=$(ALL_CFLAGS) |
124 | HOST_LDFLAGS=$(LDFLAGS) |
125 | HOST_CPPFLAGS=$(CPPFLAGS) |
126 | |
127 | # Choose the real default target. |
128 | ALL=gas |
129 | |
130 | # End of variables for you to override. |
131 | |
132 | # Lists of files for various purposes. |
133 | |
134 | REAL_SOURCES = \ |
135 | $(srcdir)/app.c \ |
136 | $(srcdir)/as.c \ |
137 | $(srcdir)/atof-generic.c \ |
138 | $(srcdir)/bignum-copy.c \ |
139 | $(srcdir)/cond.c \ |
140 | $(srcdir)/expr.c \ |
141 | $(srcdir)/flonum-const.c \ |
142 | $(srcdir)/flonum-copy.c \ |
143 | $(srcdir)/flonum-mult.c \ |
144 | $(srcdir)/frags.c \ |
145 | $(srcdir)/hash.c \ |
146 | $(srcdir)/hex-value.c \ |
147 | $(srcdir)/input-file.c \ |
148 | $(srcdir)/input-scrub.c \ |
149 | $(srcdir)/messages.c \ |
150 | $(srcdir)/output-file.c \ |
151 | $(srcdir)/read.c \ |
152 | $(srcdir)/strstr.c \ |
153 | $(srcdir)/subsegs.c \ |
154 | $(srcdir)/symbols.c \ |
155 | $(srcdir)/version.c \ |
156 | $(srcdir)/write.c \ |
157 | $(srcdir)/xmalloc.c \ |
158 | $(srcdir)/xrealloc.c |
159 | |
160 | # in an expedient order |
161 | LINKED_SOURCES = \ |
162 | targ-cpu.c \ |
163 | obj-format.c \ |
164 | atof-targ.c |
165 | |
166 | SOURCES = $(LINKED_SOURCES) $(REAL_SOURCES) |
167 | |
168 | REAL_HEADERS = \ |
169 | $(srcdir)/as.h \ |
170 | $(srcdir)/bignum.h \ |
171 | $(srcdir)/expr.h \ |
172 | $(srcdir)/flonum.h \ |
173 | $(srcdir)/frags.h \ |
174 | $(srcdir)/hash.h \ |
175 | $(srcdir)/input-file.h \ |
176 | $(srcdir)/tc.h \ |
177 | $(srcdir)/obj.h \ |
178 | $(srcdir)/read.h \ |
179 | $(srcdir)/reloc.h \ |
180 | $(srcdir)/struc-symbol.h \ |
181 | $(srcdir)/subsegs.h \ |
182 | $(srcdir)/symbols.h \ |
183 | $(srcdir)/syscalls.h \ |
184 | $(srcdir)/write.h |
185 | |
186 | LINKED_HEADERS = \ |
187 | a.out.gnu.h \ |
188 | a.out.h \ |
189 | host.h \ |
190 | targ-env.h \ |
191 | targ-cpu.h \ |
192 | obj-format.h \ |
193 | atof-targ.h |
194 | |
195 | HEADERS = $(LINKED_HEADERS) $(REAL_HEADERS) |
196 | |
197 | OBJS = \ |
198 | targ-cpu.o \ |
199 | obj-format.o \ |
200 | atof-targ.o \ |
201 | app.o \ |
202 | as.o \ |
203 | atof-generic.o \ |
204 | bignum-copy.o \ |
205 | cond.o \ |
206 | expr.o \ |
207 | flonum-const.o \ |
208 | flonum-copy.o \ |
209 | flonum-mult.o \ |
210 | frags.o \ |
211 | hash.o \ |
212 | hex-value.o \ |
213 | input-file.o \ |
214 | input-scrub.o \ |
215 | messages.o \ |
216 | output-file.o \ |
217 | read.o \ |
218 | strstr.o \ |
219 | subsegs.o \ |
220 | symbols.o \ |
221 | version.o \ |
222 | write.o \ |
223 | xmalloc.o \ |
224 | xrealloc.o |
225 | |
226 | # Definition of `all' is here so that new rules inserted by sed |
227 | # do not specify the default target. |
228 | # The real definition is under `all.internal'. |
229 | |
230 | all: $(ALL) |
231 | |
232 | # sed inserts variable overrides after the following line. |
233 | #### |
234 | \f |
235 | # Now figure out from those variables how to compile and link. |
236 | |
237 | # This is the variable actually used when we compile. |
238 | ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CFLAGS) |
239 | |
240 | # Even if ALLOCA is set, don't use it if compiling with GCC. |
241 | USE_ALLOCA= `if [ x"${CC}" = x"${OLDCC}" ] ; then echo ${ALLOCA}; else true; fi` |
242 | USE_HOST_ALLOCA= `if [ x"${CC}" = x"${OLDCC}" ] ; then echo ${HOST_PREFIX}${ALLOCA}; else true; fi` |
243 | |
244 | # Dependency on obstack, alloca, malloc or whatever library facilities |
245 | # are not installed in the system libraries. |
246 | # We don't use USE_ALLOCA because backquote expansion doesn't work in deps. |
247 | LIBDEPS= $(OBSTACK) $(ALLOCA) $(MALLOC) |
248 | |
249 | # Likewise, for use in the tools that must run on this machine |
250 | # even if we are cross-building GCC. |
251 | # We don't use USE_ALLOCA because backquote expansion doesn't work in deps. |
252 | HOST_LIBDEPS= $(HOST_PREFIX)$(OBSTACK) $(HOST_PREFIX)$(ALLOCA) $(HOST_PREFIX)$(MALLOC) |
253 | |
254 | # How to link with both our special library facilities |
255 | # and the system's installed libraries. |
256 | LIBS = $(OBSTACK) $(USE_ALLOCA) $(MALLOC) $(CLIB) |
257 | |
258 | # Likewise, for use in the tools that must run on this machine |
259 | # even if we are cross-building GCC. |
260 | HOST_LIBS = $(HOST_PREFIX)$(OBSTACK) $(USE_HOST_ALLOCA) $(HOST_PREFIX)$(MALLOC) $(CLIB) |
261 | |
262 | # Specify the directories to be searched for header files. |
263 | # Both . and srcdir are used, in that order, |
264 | # so that tm.h and config.h will be found in the compilation |
265 | # subdirectory rather than in the source directory. |
266 | INCLUDES = -I. -I$(srcdir) -I$(srcdir)/config |
267 | SUBDIR_INCLUDES = -I.. -I../$(srcdir) -I../$(srcdir)/config |
268 | |
269 | # Always use -I$(srcdir)/config when compiling. |
270 | .c.o: |
271 | $(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $< |
272 | |
273 | # This tells GNU make version 3 not to export all the variables |
274 | # defined in this file into the environment. |
275 | .NOEXPORT: |
276 | \f |
277 | # Files to be copied away after each stage in building. |
278 | STAGE_GCC=gcc |
279 | STAGESTUFF = *.o gas |
280 | |
281 | # The files that "belong" in CONFIG_H are deliberately omitted |
282 | # because having them there would not be useful in actual practice. |
283 | # All they would do is cause complete recompilation every time |
284 | # one of the machine description files is edited. |
285 | # That may or may not be what one wants to do. |
286 | # If it is, rm *.o is an easy way to do it. |
287 | # CONFIG_H = config.h tm.h |
288 | CONFIG_H = |
289 | \f |
290 | gas: $(OBJS) $(LIBDEPS) |
291 | $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gas $(OBJS) $(LIBS) |
292 | |
293 | all.internal: native |
294 | # This is what is made with the host's compiler if making a cross assembler. |
295 | native: config.status gas |
296 | |
297 | config.status: |
298 | @echo You must configure gas. Look at the INSTALL file for details. |
299 | @false |
300 | |
301 | compilations: ${OBJS} |
302 | |
303 | # Compiling object files from source files. |
304 | |
305 | # Note that dependencies on obstack.h are not written |
306 | # because that file is not part of GAS. |
307 | |
308 | app.o : app.c as.h host.h targ-env.h obj-format.h \ |
309 | targ-cpu.h struc-symbol.h reloc.h \ |
310 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
311 | as.o : as.c as.h host.h targ-env.h obj-format.h \ |
312 | targ-cpu.h struc-symbol.h reloc.h \ |
313 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
314 | atof-generic.o : atof-generic.c as.h host.h targ-env.h obj-format.h \ |
315 | targ-cpu.h struc-symbol.h reloc.h \ |
316 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
317 | bignum-copy.o : bignum-copy.c as.h host.h \ |
318 | targ-env.h obj-format.h \ |
319 | targ-cpu.h struc-symbol.h reloc.h \ |
320 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
321 | cond.o : cond.c as.h host.h targ-env.h obj-format.h \ |
322 | targ-cpu.h struc-symbol.h reloc.h \ |
323 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
324 | obstack.h |
325 | debug.o : debug.c as.h host.h targ-env.h obj-format.h \ |
326 | targ-cpu.h struc-symbol.h reloc.h \ |
327 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
328 | subsegs.h |
329 | expr.o : expr.c as.h host.h targ-env.h obj-format.h \ |
330 | targ-cpu.h struc-symbol.h reloc.h \ |
331 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
332 | obstack.h |
333 | flonum-const.o : flonum-const.c flonum.h bignum.h |
334 | flonum-copy.o : flonum-copy.c as.h host.h targ-env.h obj-format.h \ |
335 | targ-cpu.h struc-symbol.h reloc.h \ |
336 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
337 | flonum-mult.o : flonum-mult.c flonum.h bignum.h |
338 | frags.o : frags.c as.h host.h targ-env.h obj-format.h \ |
339 | targ-cpu.h struc-symbol.h reloc.h \ |
340 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
341 | subsegs.h obstack.h |
342 | hash.o : hash.c as.h host.h targ-env.h obj-format.h \ |
343 | targ-cpu.h struc-symbol.h reloc.h \ |
344 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
345 | hex-value.o : hex-value.c |
346 | input-file.o : input-file.c as.h host.h \ |
347 | targ-env.h obj-format.h targ-cpu.h \ |
348 | struc-symbol.h reloc.h write.h flonum.h bignum.h expr.h \ |
349 | frags.h hash.h read.h symbols.h tc.h obj.h input-file.h |
350 | input-scrub.o : input-scrub.c /usr/include/errno.h /usr/include/sys/errno.h \ |
351 | as.h host.h targ-env.h obj-format.h \ |
352 | targ-cpu.h struc-symbol.h reloc.h \ |
353 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
354 | input-file.h |
355 | messages.o : messages.c as.h host.h targ-env.h obj-format.h \ |
356 | targ-cpu.h struc-symbol.h reloc.h \ |
357 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h |
358 | obstack.o : obstack.c obstack.h |
359 | output-file.o : output-file.c as.h host.h targ-env.h obj-format.h \ |
360 | targ-cpu.h struc-symbol.h reloc.h \ |
361 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
362 | output-file.h |
363 | read.o : read.c as.h host.h targ-env.h obj-format.h \ |
364 | targ-cpu.h struc-symbol.h reloc.h \ |
365 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
366 | obstack.h |
367 | strstr.o : strstr.c |
368 | subsegs.o : subsegs.c as.h host.h targ-env.h obj-format.h \ |
369 | targ-cpu.h struc-symbol.h reloc.h \ |
370 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
371 | subsegs.h obstack.h |
372 | symbols.o : symbols.c as.h host.h targ-env.h obj-format.h \ |
373 | targ-cpu.h struc-symbol.h reloc.h \ |
374 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
375 | obstack.h subsegs.h |
376 | version.o : version.c |
377 | write.o : write.c as.h host.h targ-env.h obj-format.h \ |
378 | targ-cpu.h struc-symbol.h reloc.h \ |
379 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \ |
380 | subsegs.h obstack.h output-file.h |
381 | xmalloc.o : xmalloc.c |
382 | xrealloc.o : xrealloc.c |
383 | atof-targ.o : atof-targ.c as.h host.h targ-env.h obj-format.h \ |
384 | targ-cpu.h struc-symbol.h reloc.h \ |
385 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h \ |
386 | symbols.h tc.h obj.h |
387 | obj-format.o : obj-format.c as.h host.h targ-env.h obj-format.h \ |
388 | targ-cpu.h struc-symbol.h reloc.h \ |
389 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h \ |
390 | symbols.h tc.h obj.h obstack.h |
391 | targ-cpu.o : targ-cpu.c targ-env.h obj-format.h \ |
392 | targ-cpu.h struc-symbol.h reloc.h \ |
393 | write.h flonum.h bignum.h expr.h frags.h hash.h read.h \ |
394 | symbols.h tc.h obj.h obstack.h |
395 | |
396 | # Normally this target is not used; but it is used if you |
397 | # define ALLOCA=alloca.o. In that case, you must get a suitable alloca.c |
398 | # from the GNU Emacs distribution. |
399 | # Note some machines won't allow $(CC) without -S on this source file. |
400 | alloca.o: alloca.c |
401 | $(CC) $(ALL_CFLAGS) $(CPPFLAGS) -S `echo $(srcdir)/alloca.c | sed 's,^\./,,'` |
402 | as alloca.s -o alloca.o |
403 | \f |
404 | # Compile the libraries to be used by gen*. |
405 | # If we are not cross-building, gen* use the same .o's that cc1 will use, |
406 | # and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict |
407 | # with the rules for rtl.o, alloca.o, etc. |
408 | $(HOST_PREFIX_1)alloca.o: alloca.c |
409 | rm -f $(HOST_PREFIX)alloca.c |
410 | cp $(srcdir)/alloca.c $(HOST_PREFIX)alloca.c |
411 | $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)alloca.c |
412 | |
413 | $(HOST_PREFIX_1)obstack.o: obstack.c |
414 | rm -f $(HOST_PREFIX)obstack.c |
415 | cp $(srcdir)/obstack.c $(HOST_PREFIX)obstack.c |
416 | $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)obstack.c |
417 | |
418 | $(HOST_PREFIX_1)malloc.o: malloc.c |
419 | rm -f $(HOST_PREFIX)malloc.c |
420 | cp $(srcdir)/malloc.c $(HOST_PREFIX)malloc.c |
421 | $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)malloc.c |
422 | \f |
423 | # Remake the info files. |
424 | |
425 | doc: $(srcdir)/gas.info |
426 | |
427 | $(srcdir)/gas.info: $(srcdir)/gas.texinfo |
428 | makeinfo `echo $(srcdir)/gas.texinfo | sed 's,^\./,,'` |
429 | |
430 | \f |
431 | # Deletion of files made during compilation. |
432 | # There are three levels of this: `clean', `cleanconfig' and `realclean'. |
433 | # `clean' deletes what you want to delete ordinarily to save space. |
434 | # This is most, but not all, of the files made by compilation. |
435 | # `cleanconfig' also deletes everything depending |
436 | # on the choice of config files. |
437 | # `realclean' also deletes everything that could be regenerated automatically. |
438 | |
439 | clean: |
440 | -rm -f $(STAGESTUFF) |
441 | # Delete the temporary source copies for cross compilation. |
442 | -rm -f $(HOST_PREFIX_1)alloca.c $(HOST_PREFIX_1)malloc.c |
443 | -rm -f $(HOST_PREFIX_1)obstack.c |
444 | # Delete the stamp files except stamp-gnulib2. |
445 | -rm -f core |
446 | |
447 | # Like clean but also delete the links made to configure gas. |
448 | cleanconfig: clean |
449 | -rm -f config.status Makefile host.h targ-env.h |
450 | -rm -f targ-cpu.h targ-cpu.c |
451 | -rm -f obj-format.h obj-format.c |
452 | -rm -f atof-targ.c |
453 | |
454 | # Get rid of every file that's generated from some other file (except INSTALL). |
455 | realclean: cleanconfig |
456 | -rm -f gas.aux gas.cps gas.fns gas.info gas.kys gas.pgs gas.tps gas.vrs |
457 | -rm -f TAGS |
458 | -rm -f gas.info* gas.?? gas.??s gas.log gas.toc gas.*aux |
459 | -rm -f *.dvi |
460 | \f |
461 | # Entry points `install', `includes' and `uninstall'. |
462 | |
463 | # Copy the files into directories where they will be run. |
464 | install: |
465 | $(INSTALL_PROGRAM) gas $(bindir)/as |
466 | |
467 | # Create the installation directory. |
468 | install-dir: |
469 | -mkdir $(libdir) |
470 | -mkdir $(libdir)/gcc |
471 | -mkdir $(libdir)/gcc/$(target) |
472 | -mkdir $(libdir)/gcc/$(target)/$(version) |
473 | |
474 | # Install the compiler executables built during cross compilation. |
475 | install-cross: native install-dir |
476 | -if [ -f cc1 ] ; then $(INSTALL_PROGRAM) cc1 $(libsubdir)/cc1; else true; fi |
477 | -if [ -f cc1plus ] ; then $(INSTALL_PROGRAM) cc1plus $(libsubdir)/cc1plus; else true; fi |
478 | $(INSTALL_PROGRAM) cpp $(libsubdir)/cpp |
479 | ./gcc -dumpspecs > $(libsubdir)/specs |
480 | $(INSTALL_PROGRAM) gcc $(bindir)/gcc |
481 | |
482 | # Install the man pages. |
483 | install-man: install-dir $(srcdir)/gcc.1 protoize.1 unprotoize.1 |
484 | $(INSTALL_FILE) $(srcdir)/gcc.1 $(mandir)/gcc.$(manext) |
485 | chmod a-x $(mandir)/gcc.$(manext) |
486 | $(INSTALL_FILE) $(srcdir)/protoize.1 $(mandir)/protoize.$(manext) |
487 | chmod a-x $(mandir)/protoize.$(manext) |
488 | $(INSTALL_FILE) $(srcdir)/unprotoize.1 $(mandir)/unprotoize.$(manext) |
489 | chmod a-x $(mandir)/unprotoize.$(manext) |
490 | |
491 | # Cancel installation by deleting the installed files. |
492 | uninstall: |
493 | -rm -rf $(libsubdir) |
494 | -rm -rf $(bindir)/gas |
495 | -rm -rf $(mandir)/gas.$(manext) |
496 | |
497 | \f |
498 | # These exist for maintenance purposes. |
499 | |
500 | tags TAGS: force |
501 | etags $(REAL_SOURCES) $(REAL_HEADERS) README Makefile config/*.[hc] |
502 | |
503 | bootstrap: gas force |
504 | $(MAKE) stage1 |
505 | $(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas |
506 | $(MAKE) stage2 |
507 | $(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas |
508 | for i in *.o; do cmp $$i stage2/$$i; done |
509 | |
510 | bootstrap2: force |
511 | $(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas |
512 | $(MAKE) stage2 |
513 | $(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas |
514 | for i in *.o; do cmp $$i stage2/$$i; done |
515 | |
516 | bootstrap3: force |
517 | $(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= gas |
518 | for i in *.o; do cmp $$i stage2/$$i; done |
519 | |
520 | # Copy the object files from a particular stage into a subdirectory. |
521 | stage1: force |
522 | -mkdir stage1 |
523 | -mv $(STAGESTUFF) stage1 |
524 | -(cd stage1 ; ln -s gas as) |
525 | |
526 | stage2: force |
527 | -mkdir stage2 |
528 | -mv $(STAGESTUFF) stage2 |
529 | -(cd stage2 ; ln -s gas as) |
530 | |
531 | |
532 | stage3: force |
533 | -mkdir stage3 |
534 | -mv $(STAGESTUFF) $(STAGE_GCC) stage3 |
535 | -rm -f stage3/gnulib |
536 | -cp gnulib stage3 |
537 | -if $(RANLIB_TEST) ; then $(RANLIB) stage3/gnulib; else true; fi |
538 | |
539 | stage4: force |
540 | -mkdir stage4 |
541 | -mv $(STAGESTUFF) $(STAGE_GCC) stage4 |
542 | -rm -f stage4/gnulib |
543 | -cp gnulib stage4 |
544 | -if $(RANLIB_TEST) ; then $(RANLIB) stage4/gnulib; else true; fi |
545 | |
546 | # Copy just the executable files from a particular stage into a subdirectory, |
547 | # and delete the object files. Use this if you're just verifying a version |
548 | # that is pretty sure to work, and you are short of disk space. |
549 | risky-stage1: force |
550 | -mkdir stage1 |
551 | -mv cc1 cpp cccp gcc stage1 |
552 | -rm -f stage1/gnulib |
553 | -cp gnulib stage1 && $(RANLIB) stage1/gnulib |
554 | -make clean |
555 | |
556 | risky-stage2: force |
557 | -mkdir stage2 |
558 | -mv cc1 cpp cccp gcc stage2 |
559 | -rm -f stage2/gnulib |
560 | -cp gnulib stage2 && $(RANLIB) stage2/gnulib |
561 | -make clean |
562 | |
563 | risky-stage3: force |
564 | -mkdir stage3 |
565 | -mv cc1 cpp cccp gcc stage3 |
566 | -rm -f stage3/gnulib |
567 | -cp gnulib stage3 && $(RANLIB) stage3/gnulib |
568 | -make clean |
569 | |
570 | risky-stage4: force |
571 | -mkdir stage4 |
572 | -mv cc1 cpp cccp gcc stage4 |
573 | -rm -f stage4/gnulib |
574 | -cp gnulib stage4 && $(RANLIB) stage4/gnulib |
575 | -make clean |
576 | |
577 | #In GNU Make, ignore whether `stage*' exists. |
578 | .PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrap |
579 | .PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4 |
580 | |
581 | force: |
582 | |
583 | Makefile: $(srcdir)/Makefile.in $(srcdir)/configure |
584 | (cd $(srcdir) ; configure -host=$(host) $(target)) |