|
|
1.1 root 1: # Makefile for GNU C compiler. 1.1.1.5 ! root 2: # Copyright (C) 1987, 88, 90, 91, 92, 1993 Free Software Foundation, Inc. 1.1 root 3: 4: #This file is part of GNU CC. 5: 6: #GNU CC 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 2, or (at your option) 9: #any later version. 10: 11: #GNU CC 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 CC; see the file COPYING. If not, write to 18: #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 19: 20: # The targets for external use include: 21: # all, doc, proto, install, install-cross, install-cross-rest, 1.1.1.2 root 22: # uninstall, TAGS, mostlyclean, clean, distclean, realclean, 1.1 root 23: # stage1, stage2, stage3, stage4. 24: 1.1.1.2 root 25: # Suppress smart makes who think they know how to automake Yacc files 26: .y.c: 27: 1.1 root 28: # Variables that exist for you to override. 29: # See below for how to change them for certain systems. 30: 31: # Selection of languages to be made. 32: LANGUAGES = c c++ objective-c proto 33: 34: ALLOCA = 1.1.1.4 root 35: ALLOCA_FLAGS = 36: ALLOCA_FINISH = true 1.1 root 37: 38: # Various ways of specifying flags for compilations: 39: # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2. 40: # BOOT_CFLAGS is the value of CFLAGS to pass 41: # to the stage2 and stage3 compilations 42: # XCFLAGS is used for most compilations but not when using the GCC just built. 43: XCFLAGS = 44: CFLAGS = -g 45: BOOT_CFLAGS = -O $(CFLAGS) 46: # These exists to be overridden by the x-* and t-* files, respectively. 47: X_CFLAGS = 48: T_CFLAGS = 49: 50: X_CPPFLAGS = 51: T_CPPFLAGS = 52: 53: CC = cc 54: BISON = bison 55: BISONFLAGS = 56: AR = ar 57: OLDAR_FLAGS = qc 58: AR_FLAGS = rc 59: SHELL = /bin/sh 60: # on sysV, define this as cp. 61: INSTALL = install -c 62: # These permit overriding just for certain files. 63: INSTALL_PROGRAM = $(INSTALL) 64: INSTALL_DATA = $(INSTALL) 65: SYMLINK = ln -s 1.1.1.5 ! root 66: MAKEINFO = makeinfo ! 67: TEXI2DVI = texi2dvi 1.1 root 68: 69: # Define this as & to perform parallel make on a Sequent. 70: # Note that this has some bugs, and it seems currently necessary 71: # to compile all the gen* files first by hand to avoid erroneous results. 72: P = 73: 74: # How to invoke ranlib. 75: RANLIB = ranlib 76: # Test to use to see whether ranlib exists on the system. 77: RANLIB_TEST = [ -f /usr/bin/ranlib -o -f /bin/ranlib ] 78: 79: # Compiler to use for compiling libgcc1.a. 80: # OLDCC should not be the GNU C compiler, 81: # since that would compile typical libgcc1.a functions such as mulsi3 82: # into infinite recursions. 83: OLDCC = cc 84: 85: # CFLAGS for use with OLDCC, for compiling libgcc1.a. 86: # NOTE: -O does not work on some Unix systems! 87: CCLIBFLAGS = -O 88: 1.1.1.2 root 89: # Version of ar to use when compiling libgcc1.a. 1.1 root 90: OLDAR = ar 91: 1.1.1.5 ! root 92: # Target to use when installing include directory. Either ! 93: # install-headers-tar or install-headers-cpio. ! 94: INSTALL_HEADERS_DIR = install-headers-tar ! 95: 1.1.1.4 root 96: # The GCC to use for compiling libgcc2.a, enquire, and cross-test. 97: # Usually the one we just built. 1.1 root 98: # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). 1.1.1.4 root 99: GCC_FOR_TARGET = ./xgcc -B./ 1.1 root 100: 101: # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. 102: # It omits XCFLAGS, and specifies -B./. 1.1.1.4 root 103: # It also specifies -B$(tooldir)/ to find as and ld for a cross compiler. 1.1.1.5 ! root 104: GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) 1.1 root 105: 106: # Special flags for compiling enquire. 107: # We disable optimization to make floating point more reliable. 1.1.1.4 root 108: ENQUIRE_CFLAGS = -DNO_MEM -DNO_STDDEF -DNO_LONG_DOUBLE_IO -O0 1.1 root 109: ENQUIRE_LDFLAGS = $(LDFLAGS) 110: 111: # Tools to use when building a cross-compiler. 112: # These are used because `configure' appends `cross-make' 113: # to the makefile when making a cross-compiler. 114: 115: TARGET_TOOLPREFIX = $(tooldir)/bin/ 116: AR_FOR_TARGET = $(TARGET_TOOLPREFIX)ar 117: AR_FOR_TARGET_FLAGS = rc 118: RANLIB_FOR_TARGET = $(TARGET_TOOLPREFIX)ranlib 119: RANLIB_TEST_FOR_TARGET = [ -f $(TARGET_TOOLPREFIX)ranlib ] 120: 1.1.1.4 root 121: # Dir to search for system headers. Overridden by cross-make. 122: SYSTEM_HEADER_DIR = /usr/include 123: 1.1.1.3 root 124: # There may be a premade insn-attrtab.c for this machine. 125: # (You could rebuild it with genattrtab as usual, but it takes a long time.) 126: # PREMADE_ATTRTAB is the file name of the file to use. 127: # PREMADE_ATTRTAB_MD is the md file it corresponds to. 128: PREMADE_ATTRTAB_MD = Makefile # Guaranteed not to cmp equal to md. 129: PREMADE_ATTRTAB = 130: 1.1 root 131: target= ... `configure' substitutes actual target name here. 132: xmake_file= ... `configure' substitutes actual x- file name here. 133: tmake_file= ... `configure' substitutes actual t- file name here. 1.1.1.4 root 134: version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c` 1.1 root 135: 136: # Directory where sources are, from where we are. 137: srcdir = . 138: # Common prefix for installation directories. 139: # NOTE: This directory must exist when you start installation. 140: prefix = /usr/local 1.1.1.5 ! root 141: # Directory in which to put localized header files. On the systems with ! 142: # gcc as the native cc, `local_prefix' may not be `prefix' which is ! 143: # `/usr'. ! 144: # NOTE: local_prefix *should not* default from prefix. ! 145: local_prefix = /usr/local 1.1.1.2 root 146: # Directory in which to put host dependent programs and libraries 147: exec_prefix = $(prefix) 1.1 root 148: # Directory in which to put the executable for the command `gcc' 1.1.1.2 root 149: bindir = $(exec_prefix)/bin 1.1 root 150: # Directory in which to put the directories used by the compiler. 1.1.1.2 root 151: libdir = $(exec_prefix)/lib 1.1 root 152: # Directory in which the compiler finds executables, libraries, etc. 1.1.1.2 root 153: libsubdir = $(libdir)/gcc-lib/$(target)/$(version) 1.1.1.5 ! root 154: # Directory to search for site-specific includes. ! 155: includedir = $(local_prefix)/include 1.1.1.4 root 156: # assertdir is overridden in cross-make. 1.1.1.5 ! root 157: # (But this currently agrees with what is in cross-make.) ! 158: assertdir = $(tooldir)/include ! 159: # where the info files go ! 160: infodir = $(prefix)/info 1.1 root 161: # Extension (if any) to put in installed man-page filename. 162: manext = .1 163: # Directory in which to put man pages. 164: mandir = $(prefix)/man/man1 165: # Directory in which to find other cross-compilation tools and headers. 166: # Used in install-cross. 1.1.1.5 ! root 167: tooldir = $(exec_prefix)/$(target) 1.1.1.4 root 168: # Dir for temp files. 169: tmpdir = /tmp 1.1 root 170: 171: # Additional system libraries to link with. 172: CLIB= 173: 174: # Change this to a null string if obstacks are installed in the 175: # system library. 176: OBSTACK=obstack.o 177: 178: # Specify the rule for actually making libgcc1.a. 1.1.1.2 root 179: # The value may be empty; that means to do absolutely nothing 180: # with or for libgcc1.a. 1.1 root 181: LIBGCC1 = libgcc1.a 182: 183: # Specify the rule for actually making libgcc2.a. 184: LIBGCC2 = libgcc2.a 185: 186: # Options to use when compiling libgcc2.a. 187: # -g1 causes output of debug info only for file-scope entities. 188: # we use this here because that should be enough, and also 189: # so that -g1 will be tested. 1.1.1.5 ! root 190: LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g1 ! 191: ! 192: # Additional options to use when compiling libgcc2.a. ! 193: # Some targets override this to -Iinclude ! 194: LIBGCC2_INCLUDES = ! 195: ! 196: # Things which must be built before building libgcc2.a. ! 197: # Some targets override this to stmp-int-hdrs ! 198: LIBGCC2_DEPS = 1.1 root 199: 200: # List of extra executables that should be compiled for this target machine 201: # that are used for compiling from source code to object code. 202: # The rules for compiling them should be in the t-* file for the machine. 203: EXTRA_PASSES = 204: 1.1.1.2 root 205: # Like EXTRA_PASSES, but these are used when linking. 206: EXTRA_PROGRAMS = 207: 208: # List of extra object files that should be compiled for this target machine. 1.1 root 209: # The rules for compiling them should be in the t-* file for the machine. 210: EXTRA_PARTS = 211: 212: # List of extra object files that should be compiled and linked with 213: # compiler proper (cc1, cc1obj, cc1plus). 214: EXTRA_OBJS = 215: 1.1.1.3 root 216: # List of additional header files to install. 217: # Often this is edited directly by `configure'. 218: EXTRA_HEADERS = 219: 220: # Set this to `ld' to enable use of collect2. 221: # USE_COLLECT2 = 222: # It is convenient for configure to add the assignment at the beginning, 223: # so don't override it here. 224: 1.1 root 225: # List of extra C and assembler files to add to libgcc1.a. 226: # Assembler files should have names ending in `.asm'. 227: LIB1FUNCS_EXTRA = 228: 229: # List of extra C and assembler files to add to libgcc2.a. 230: # Assembler files should have names ending in `.asm'. 231: LIB2FUNCS_EXTRA = 232: 1.1.1.5 ! root 233: # Default float.h source to use for cross-compiler. ! 234: CROSS_FLOAT_H=float.h-cross ! 235: 1.1 root 236: # Program to convert libraries. 237: LIBCONVERT = 238: 239: # Control whether header files are installed. 240: INSTALL_HEADERS=install-headers 241: 1.1.1.5 ! root 242: # Options for tar when copying trees. So HPUX can override it. ! 243: TAROUTOPTS = xpBf ! 244: 1.1 root 245: # Select which version of fixincludes to use (I.E. regular versus SVR4) 1.1.1.5 ! root 246: # This value is overridden directly by configure. 1.1 root 247: FIXINCLUDES=fixincludes 248: 1.1.1.4 root 249: # Additional directories of header files to run fixincludes on. 1.1.1.5 ! root 250: # These should be directories searched automatically by default ! 251: # just as /usr/include is. ! 252: # *Do not* use this for directories that happen to contain ! 253: # header files, but are not searched automatically by default. 1.1.1.4 root 254: # On most systems, this is empty. 255: OTHER_FIXINCLUDES_DIRS= 256: 257: # List of things which should already be built whenever we try to use xgcc 1.1 root 258: # to compile anything (without linking). 1.1.1.4 root 259: GCC_PASSES=xgcc cc1 cpp $(EXTRA_PASSES) 1.1 root 260: 1.1.1.4 root 261: # List of things which should already be built whenever we try to use xgcc 1.1 root 262: # to link anything. 1.1.1.3 root 263: GCC_PARTS=$(GCC_PASSES) libgcc.a $(EXTRA_PROGRAMS) $(USE_COLLECT2) $(EXTRA_PARTS) 1.1 root 264: 265: # Directory to link to, when using the target `maketest'. 266: DIR = ../gcc 267: 268: # Flags to use when cross-building GCC. 269: # Prefix to apply to names of object files when using them 270: # to run on the machine we are compiling on. 271: HOST_PREFIX= 272: # Prefix to apply to names of object files when compiling them 273: # to run on the machine we are compiling on. 274: # The default for this variable is chosen to keep these rules 275: # out of the way of the other rules for compiling the same source files. 276: HOST_PREFIX_1=loser- 277: HOST_CC=$(CC) 278: HOST_CFLAGS=$(ALL_CFLAGS) 279: HOST_CLIB=$(CLIB) 280: HOST_LDFLAGS=$(LDFLAGS) 281: HOST_CPPFLAGS=$(ALL_CPPFLAGS) 282: HOST_ALLOCA=$(ALLOCA) 283: HOST_MALLOC=$(MALLOC) 284: HOST_OBSTACK=$(OBSTACK) 285: 286: # Choose the real default target. 287: ALL=all.internal 288: 289: # Choose the real install target. 1.1.1.5 ! root 290: INSTALL_TARGET=install-normal ! 291: ! 292: # Source for float.h. Overridden by cross-make. ! 293: FLOAT_H=float.h-nat 1.1 root 294: 295: # End of variables for you to override. 296: 297: # Definition of `all' is here so that new rules inserted by sed 298: # do not specify the default target. 299: # The real definition is under `all.internal' (for native compilers) 300: # or `all.cross' (for cross compilers). 1.1.1.2 root 301: all: all.indirect 1.1 root 302: 1.1.1.3 root 303: # This tells GNU Make version 3 not to put all variables in the environment. 304: .NOEXPORT: 305: 1.1 root 306: # sed inserts variable overrides after the following line. 1.1.1.4 root 307: ####target overrides 308: ####host overrides 309: ####cross overrides 310: ####build overrides 1.1 root 311: 312: # Now figure out from those variables how to compile and link. 313: 1.1.1.2 root 314: all.indirect: $(ALL) 315: 1.1.1.4 root 316: # IN_GCC tells obstack.h to use gstddef.h. 317: INTERNAL_CFLAGS = $(CROSS) -DIN_GCC 1.1 root 318: 319: # This is the variable actually used when we compile. 320: ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) 321: 322: # Likewise. 323: ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS) 324: 325: # Even if ALLOCA is set, don't use it if compiling with GCC. 1.1.1.2 root 326: USE_ALLOCA= ` case "${CC}" in "${OLDCC}") echo ${ALLOCA} ;; esac ` 327: USE_HOST_ALLOCA= ` case "${HOST_CC}"@"${HOST_ALLOCA}" in "${OLDCC}"@?*) echo ${HOST_PREFIX}${HOST_ALLOCA} ;; esac ` 328: USE_HOST_MALLOC= ` case "${HOST_MALLOC}" in ?*) echo ${HOST_PREFIX}${HOST_MALLOC} ;; esac ` 329: USE_HOST_OBSTACK= ` case "${HOST_OBSTACK}" in ?*) echo ${HOST_PREFIX}${HOST_OBSTACK} ;; esac ` 1.1 root 330: 331: # Dependency on obstack, alloca, malloc or whatever library facilities 332: # are not installed in the system libraries. 333: # We don't use USE_ALLOCA because backquote expansion doesn't work in deps. 334: LIBDEPS= $(OBSTACK) $(ALLOCA) $(MALLOC) 335: 336: # Likewise, for use in the tools that must run on this machine 337: # even if we are cross-building GCC. 338: # We don't use USE_ALLOCA because backquote expansion doesn't work in deps. 339: HOST_LIBDEPS= $(HOST_PREFIX)$(HOST_OBSTACK) $(HOST_PREFIX)$(HOST_ALLOCA) $(HOST_PREFIX)$(HOST_MALLOC) 340: 341: # How to link with both our special library facilities 342: # and the system's installed libraries. 343: LIBS = $(OBSTACK) $(USE_ALLOCA) $(MALLOC) $(CLIB) 344: 345: # Likewise, for use in the tools that must run on this machine 346: # even if we are cross-building GCC. 347: HOST_LIBS = $(USE_HOST_OBSTACK) $(USE_HOST_ALLOCA) $(USE_HOST_MALLOC) \ 348: $(HOST_CLIB) 349: 350: HOST_RTL = $(HOST_PREFIX)rtl.o 351: HOST_RTLANAL = $(HOST_PREFIX)rtlanal.o 1.1.1.3 root 352: HOST_PRINT = $(HOST_PREFIX)print-rtl.o 1.1 root 353: 354: # Specify the directories to be searched for header files. 355: # Both . and srcdir are used, in that order, 356: # so that tm.h and config.h will be found in the compilation 357: # subdirectory rather than in the source directory. 358: INCLUDES = -I. -I$(srcdir) -I$(srcdir)/config 359: SUBDIR_INCLUDES = -I.. -I../$(srcdir) -I../$(srcdir)/config 360: 361: # Always use -I$(srcdir)/config when compiling. 362: .c.o: 363: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< 364: 365: # This tells GNU make version 3 not to export all the variables 366: # defined in this file into the environment. 367: .NOEXPORT: 368: 369: # Lists of files for various purposes. 370: 371: # A list of all the language-specific executables. 372: COMPILERS = cc1 cc1plus cc1obj 373: 374: # Language-specific object files for C. 1.1.1.5 ! root 375: C_OBJS = c-parse.o c-lang.o c-lex.o c-pragma.o \ ! 376: c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-iterate.o 1.1 root 377: 1.1.1.5 ! root 378: # Language-specific object files for Objective C. ! 379: OBJC_OBJS = objc-parse.o objc-act.o c-lex.o c-pragma.o \ ! 380: c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-iterate.o 1.1 root 381: 382: # Language-specific object files for C++. 383: CPLUS_OBJS = cp-parse.o cp-decl.o cp-decl2.o \ 384: cp-typeck.o cp-type2.o cp-tree.o cp-ptree.o \ 385: cp-cvt.o cp-search.o cp-lex.o cp-gc.o cp-call.o \ 386: cp-class.o cp-init.o cp-method.o cp-except.o \ 387: cp-expr.o cp-pt.o cp-edsel.o cp-xref.o \ 388: $(CPLUS_INPUT) cp-spew.o c-common.o 389: 390: # Language-independent object files. 391: OBJS = toplev.o version.o tree.o print-tree.o stor-layout.o fold-const.o \ 392: function.o stmt.o expr.o calls.o expmed.o explow.o optabs.o varasm.o \ 1.1.1.5 ! root 393: rtl.o print-rtl.o rtlanal.o emit-rtl.o real.o \ 1.1.1.2 root 394: dbxout.o sdbout.o dwarfout.o xcoffout.o \ 1.1 root 395: integrate.o jump.o cse.o loop.o unroll.o flow.o stupid.o combine.o \ 1.1.1.4 root 396: regclass.o local-alloc.o global.o reload.o reload1.o caller-save.o \ 1.1 root 397: insn-peep.o reorg.o sched.o final.o recog.o reg-stack.o \ 1.1.1.5 ! root 398: insn-opinit.o insn-recog.o insn-extract.o insn-output.o insn-emit.o \ ! 399: insn-attrtab.o aux-output.o getpwd.o convert.o $(EXTRA_OBJS) 1.1 root 400: 401: # GEN files are listed separately, so they can be built before doing parallel 402: # makes for cc1 or cc1plus. Otherwise sequent parallel make attempts to load 403: # them before rtl.o is compiled. 404: GEN= genemit genoutput genrecog genextract genflags gencodes genconfig genpeep 405: 406: # Files to be copied away after each stage in building. 407: STAGESTUFF = *.o insn-flags.h insn-config.h insn-codes.h \ 408: insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \ 1.1.1.5 ! root 409: insn-attr.h insn-attrtab.c insn-opinit.c \ 1.1 root 410: stamp-flags stamp-config stamp-codes \ 411: stamp-output stamp-recog stamp-emit stamp-extract stamp-peep \ 1.1.1.5 ! root 412: stamp-attr stamp-attrtab stamp-opinit stamp-proto \ 1.1 root 413: genemit genoutput genrecog genextract genflags gencodes genconfig genpeep \ 1.1.1.5 ! root 414: genattrtab genattr genopinit \ 1.1.1.3 root 415: $(GCC_PASSES) $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross cccp \ 416: cc1plus cc1obj enquire protoize unprotoize specs collect2 $(USE_COLLECT2) 1.1 root 417: 418: # Members of libgcc1.a. 419: LIB1FUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ 420: _lshrsi3 _lshlsi3 _ashrsi3 _ashlsi3 \ 421: _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ 422: _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ 423: _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ 424: _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ 425: _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 426: 427: # Library members defined in libgcc2.c. 428: LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ 1.1.1.5 ! root 429: _lshrdi3 _lshldi3 _ashldi3 _ashrdi3 _ffsdi2 \ 1.1.1.4 root 430: _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ 1.1 root 431: _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ 1.1.1.5 ! root 432: _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ ! 433: __gcc_bcmp _varargs _eprintf _op_new _new_handler _op_delete \ 1.1.1.4 root 434: _bb _shtab _clear_cache _trampoline __main _exit _ctors 1.1 root 435: 436: # Header files that are made available under the same name 1.1.1.4 root 437: # to programs compiled with GCC. 438: USER_H = va-alpha.h va-i860.h va-i960.h va-mips.h va-m88k.h \ 1.1.1.5 ! root 439: va-pa.h va-pyr.h va-sparc.h va-clipper.h va-spur.h proto.h $(EXTRA_HEADERS) 1.1 root 440: 441: # The files that "belong" in CONFIG_H are deliberately omitted 442: # because having them there would not be useful in actual practice. 443: # All they would do is cause complete recompilation every time 444: # one of the machine description files is edited. 445: # That may or may not be what one wants to do. 446: # If it is, rm *.o is an easy way to do it. 447: # CONFIG_H = config.h tm.h 448: CONFIG_H = 449: RTL_H = rtl.h rtl.def machmode.h machmode.def 450: TREE_H = tree.h real.h tree.def machmode.h machmode.def 451: CPLUS_TREE_H = $(TREE_H) cp-tree.h cp-tree.def 452: 453: # Avoid a lot of time thinking about remaking Makefile.in and *.def. 454: .SUFFIXES: .in .def 455: 1.1.1.3 root 456: Makefile: $(srcdir)/Makefile.in $(srcdir)/configure $(srcdir)/version.c \ 1.1 root 457: $(srcdir)/config/$(xmake_file) $(srcdir)/config/$(tmake_file) 458: sh config.status 459: 460: all.internal: start.encap rest.encap 461: # This is what to compile if making a cross-compiler. 1.1.1.5 ! root 462: # Note that we can compile enquire using the cross-compiler just build, ! 463: # although we can't run it on this machine. ! 464: all.cross: native gcc-cross specs libgcc.a stmp-headers cross-test enquire $(EXTRA_PARTS) 1.1.1.4 root 465: # This is what to compile if making gcc with a cross-compiler. 466: all.build: native xgcc $(EXTRA_PARTS) 1.1 root 467: # This is what must be made before installing GCC and converting libraries. 1.1.1.4 root 468: start.encap: native xgcc specs $(LIBGCC1) xlimits.h 1.1 root 469: # Use this to make a GCC that will be used only to recompile GCC. 470: for-bootstrap: start.encap libgcc.a 471: # These can't be made, with COFF encapsulation, until after GCC can run. 1.1.1.5 ! root 472: rest.encap: libgcc.a stmp-headers $(EXTRA_PARTS) 1.1 root 473: # This is what is made with the host's compiler 474: # whether making a cross compiler or not. 1.1.1.3 root 475: native: config.status cpp $(LANGUAGES) $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) 1.1 root 476: 477: # Define the names for selecting languages in LANGUAGES. 478: C c: cc1 479: C++ c++: cc1plus 1.1.1.5 ! root 480: # The next two ought to depend on objc-runtime, but that doesn't work yet. ! 481: OBJC objc: cc1obj ! 482: OBJECTIVE-C objective-c: cc1obj 1.1 root 483: PROTO: proto 484: 1.1.1.2 root 485: # Really, really stupid make features, such as SUN's KEEP_STATE, may force 486: # a target to build even if it is up-to-date. So we must verify that 487: # config.status does not exist before failing. 1.1 root 488: config.status: 1.1.1.2 root 489: @if [ ! -f config.status ] ; then \ 490: echo You must configure gcc. Look at the INSTALL file for details.; \ 491: false; \ 492: else \ 493: true; \ 494: fi 1.1 root 495: 1.1.1.3 root 496: # On the target machine, finish building a cross compiler. 497: # This does the things that can't be done on the host machine. 1.1.1.5 ! root 498: rest.cross: libgcc.a gfloat.h specs 1.1.1.3 root 499: 500: # Verify that it works to compile and link cross-test. 501: # If it does, then there are sufficient replacements for libgcc1.a. 1.1.1.5 ! root 502: cross-test: cross-test.o native gcc-cross libgcc.a $(GCC_PARTS) 1.1.1.3 root 503: $(GCC_FOR_TARGET) $(GCC_CFLAGS) cross-test.o -o $@ 504: cross-test.o: cross-test.c native gcc-cross 505: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -c $(srcdir)/cross-test.c 506: 507: # Recompile all the language-independent object files. 508: # This is used only if the user explicitly asks for it. 1.1 root 509: compilations: ${OBJS} 510: 1.1.1.4 root 511: # We call this executable `xgcc' rather than `gcc' 512: # to avoid confusion if the current directory is in the path 513: # and CC is `gcc'. It is renamed to `gcc' when it is installed. 514: xgcc: gcc.o version.o $(LIBDEPS) 515: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgcc gcc.o version.o $(LIBS) 1.1.1.3 root 516: 517: # Dump a specs file to make -B./ read these specs over installed ones. 1.1.1.4 root 518: specs: xgcc 1.1.1.5 ! root 519: $(GCC_FOR_TARGET) -dumpspecs > specs 1.1 root 520: 1.1.1.4 root 521: # We do want to create an executable named `xgcc', so we can use it to 1.1 root 522: # compile libgcc2.a. 523: # Also create gcc-cross, so that install-common will install properly. 1.1.1.4 root 524: gcc-cross: xgcc 525: cp xgcc gcc-cross 1.1 root 526: 527: cc1:$(P) $(C_OBJS) $(OBJS) $(LIBDEPS) 528: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1 $(C_OBJS) $(OBJS) $(LIBS) 529: 530: cc1plus:$(P) $(CPLUS_OBJS) $(OBJS) $(LIBDEPS) 531: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1plus $(CPLUS_OBJS) $(OBJS) $(LIBS) 532: 533: cc1obj:$(P) $(OBJC_OBJS) $(OBJS) $(LIBDEPS) 534: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1obj $(OBJC_OBJS) $(OBJS) $(LIBS) 535: 1.1.1.5 ! root 536: # Copy float.h from its source. ! 537: gfloat.h: $(FLOAT_H) ! 538: cp $(FLOAT_H) gfloat.h ! 539: ! 540: # Create float.h source for the native machine. ! 541: float.h-nat: enquire 1.1 root 542: -./enquire -f > tmp-float.h 1.1.1.5 ! root 543: mv tmp-float.h float.h-nat ! 544: ! 545: # Create a dummy float.h source for a cross-compiler. ! 546: float.h-cross: ! 547: echo "#error float.h values not known for cross-compiler" > float.h-cross 1.1 root 548: 549: # Used to compile enquire with standard cc, but have forgotten why. 550: # Let's try with GCC. 551: enquire: enquire.o $(GCC_PARTS) 552: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ENQUIRE_LDFLAGS) enquire.o -o $@ 553: enquire.o: $(srcdir)/enquire.c $(GCC_PASSES) 1.1.1.4 root 554: # -if [ "$(srcdir)" != "." ]; then rm -f ./enquire.c; else true; fi 555: # -cp $(srcdir)/enquire.c . > /dev/null 2>&1 1.1 root 556: # Breaking this line caused a problem with one version of GNU make. 1.1.1.4 root 557: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) $(ENQUIRE_CFLAGS) -I. -c $(srcdir)/enquire.c 558: 559: # Build the version of limits.h that we will install. 560: xlimits.h: glimits.h limitx.h limity.h 561: if [ -f $(SYSTEM_HEADER_DIR)/limits.h ] ; then \ 562: cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > xlimits.h; \ 563: else \ 564: cat $(srcdir)/glimits.h > xlimits.h; \ 565: fi 1.1 root 566: 567: # Build libgcc.a. 568: # This is done in two parts because some functions, in libgcc1.c, 1.1.1.4 root 569: # must be compiled with something other than GCC, 570: # while the rest, in libgcc2.c, must be compiled with xgcc. 571: # That means we can't do libgcc2.c until after xgcc, cc1, etc. 1.1 root 572: 573: # Use this as value of LIBGCC1 to cause conversion to GNU library format. 574: # LIBCONVERT should put its output in libgcc1.conv. 575: libgcc1.conv: libgcc1.a 576: $(LIBCONVERT) libgcc1.a libgcc1.conv 577: 578: # Use this as value of LIBGCC1 to inhibit use of libgcc1.c entirely. 579: # Make an empty file instead. 1.1.1.5 ! root 580: libgcc1.null: $(GCC_PASSES) 1.1 root 581: echo "__foo () {}" > dummy.c 582: $(GCC_FOR_TARGET) $(GCC_CFLAGS) -c dummy.c 583: $(OLDAR) $(OLDAR_FLAGS) libgcc1.null dummy.o 584: rm -f dummy.o dummy.c 585: 1.1.1.4 root 586: # This is $(LIBGCC1) for a cross-compiler. 587: # We have no automatic way of building libgcc1.a, 588: # so it's up to the installer to find a way to do that. 589: # This rule deliberately does not depend on libgcc1.a 590: # so that it will fail if the installer hasn't provided it. 591: libgcc1.cross: 592: mv libgcc1.a libgcc1.cross || (echo You must find a way to make libgcc1.a; false) 593: 1.1 root 594: # Compile the library of arithmetic subroutines with the native compiler. 1.1.1.4 root 595: # Don't compile it with GCC! 1.1 root 596: # (That would cause most arithmetic functions to call themselves.) 597: libgcc1.a: libgcc1.c $(CONFIG_H) $(LIB1FUNCS_EXTRA) config.status 598: -rm -f tmplibgcc1.a 599: # Actually build it in tmplibgcc1.a, then rename at end, 600: # so that libgcc1.a itself remains nonexistent if compilation is aborted. 601: # -e causes any failing command to make this rule fail. 602: # -e doesn't work in certain shells, so we test $$? as well. 603: set -e; \ 604: for name in $(LIB1FUNCS); \ 605: do \ 606: echo $${name}; \ 607: rm -f $${name}.o; \ 608: $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \ 609: if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ 610: mv libgcc1.o $${name}.o; \ 611: $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}.o; \ 612: rm -f $${name}.o; \ 613: done 614: # Some shells crash when a loop has no items. 615: # So make sure there is always at least one--`..'. 616: # Then ignore it. 617: # We don't use -e here because there are if statements 618: # that should not make the command give up when the if condition is false. 619: # Instead, we test for failure after each command where it matters. 1.1.1.2 root 620: -for file in .. $(LIB1FUNCS_EXTRA); \ 1.1 root 621: do \ 622: if [ x$${file} != x.. ]; then \ 623: name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \ 624: echo $${name}; \ 625: if [ $${name}.asm = $${file} ]; then \ 1.1.1.4 root 626: cp $${file} $${name}.s || exit 1; file=$${name}.s; \ 1.1 root 627: else true; fi; \ 628: $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c $${file}; \ 629: if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ 630: $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}.o; \ 631: if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ 632: rm -f $${name}.[so]; \ 633: else true; \ 634: fi; \ 635: done 636: mv tmplibgcc1.a libgcc1.a 637: 638: # Compiling libgcc2.a requires making sure that cc1, etc. have been compiled. 639: # But recompiling cc1 should not force recompilation of libgcc2.a. 640: # If you want to force recompilation, delete libgcc2.a. 1.1.1.5 ! root 641: libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) 1.1 root 642: -if [ -f libgcc2.ready ] ; then \ 643: true; \ 644: else \ 645: touch libgcc2.ready; \ 646: fi 647: 648: libgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \ 1.1.1.4 root 649: machmode.h longlong.h gbl-ctors.h config.status 1.1 root 650: # Actually build it in tmplibgcc2.a, then rename at end, 651: # so that libgcc2.a itself remains nonexistent if compilation is aborted. 652: -rm -f tmplibgcc2.a 653: # -e causes any failing command to make this rule fail. 654: # -e doesn't work in certain shells, so we test $$? as well. 655: set -e; \ 656: for name in $(LIB2FUNCS); \ 657: do \ 658: echo $${name}; \ 1.1.1.2 root 659: $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \ 1.1 root 660: $(srcdir)/libgcc2.c -o $${name}.o; \ 661: if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ 662: $(AR) $(AR_FLAGS) tmplibgcc2.a $${name}.o; \ 663: rm -f $${name}.o; \ 664: done 665: # Some shells crash when a loop has no items. 666: # So make sure there is always at least one--`..'. 667: # Then ignore it. 668: # We don't use -e here because there are if statements 669: # that should not make the command give up when the if condition is false. 670: # Instead, we test for failure after each command where it matters. 1.1.1.2 root 671: -for file in .. $(LIB2FUNCS_EXTRA); \ 1.1 root 672: do \ 673: if [ x$${file} != x.. ]; then \ 674: name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \ 675: echo $${name}; \ 676: if [ $${name}.asm = $${file} ]; then \ 1.1.1.4 root 677: cp $${file} $${name}.s || exit 1; file=$${name}.s; \ 1.1 root 678: else true; fi; \ 1.1.1.2 root 679: $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \ 1.1 root 680: if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ 681: $(AR) $(AR_FLAGS) tmplibgcc2.a $${name}.o; \ 682: rm -f $${name}.[so]; \ 683: else true; \ 684: fi; \ 685: done 686: mv tmplibgcc2.a libgcc2.a 687: # These lines were deleted from above the mv command 688: # because ranlibing libgcc.a itself should suffice. 689: # -if [ x${HPUX_GAS} = x ] ; then \ 690: # if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc2.a; else true; fi \ 691: # else true; fi 692: 693: # Combine the various libraries into a single library, libgcc.a. 694: libgcc.a: $(LIBGCC1) $(LIBGCC2) 695: -rm -rf tmplibgcc.a libgcc.a tmpcopy 696: mkdir tmpcopy 1.1.1.2 root 697: -if [ x$(LIBGCC1) != x ]; \ 698: then (cd tmpcopy; $(AR) x ../$(LIBGCC1)); \ 699: else true; \ 700: fi 1.1 root 701: (cd tmpcopy; $(AR) x ../$(LIBGCC2)) 702: (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o) 703: rm -rf tmpcopy 704: -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi 705: # Actually build it in tmplibgcc.a, then rename at end, 706: # so that libgcc.a itself remains nonexistent if compilation is aborted. 707: mv tmplibgcc.a libgcc.a 708: 1.1.1.4 root 709: objc-runtime: libobjc.a 710: 711: # Build the Objective C runtime library. 1.1.1.5 ! root 712: libobjc.a: cc1obj libgcc2.ready $(USE_COLLECT2) $(EXTRA_PARTS) 1.1.1.4 root 713: if [ -d objc ]; then true; else mkdir objc; fi 714: thisdir1=`pwd`; \ 715: srcdir1=`cd $(srcdir); pwd`; \ 716: cd objc; \ 717: $(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \ 718: srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \ 719: GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \ 720: GCC_CFLAGS="$(GCC_CFLAGS)" 721: -rm -f libobjc.a 722: ln objc/libobjc.a . >/dev/null 2>&1 || cp objc/libobjc.a . 723: -if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi 724: 725: # This is used by objc/Makefile if the user runs that directly. 726: sublibobjc.a: cc1obj libgcc2.ready 727: thisdir1=`pwd`; \ 728: srcdir1=`cd $(srcdir); pwd`; \ 729: cd objc; \ 730: $(MAKE) -f $$srcdir1/objc/Makefile libobjc.a \ 731: srcdir=$$srcdir1 tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \ 732: GCC_FOR_TARGET="$$thisdir1/xgcc -B$$thisdir1/" \ 733: GCC_CFLAGS="$(GCC_CFLAGS)" 1.1 root 734: 735: # Compile two additional files that are linked with every program 736: # linked using GCC on system V, for the sake of C++ constructors. 737: crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h 738: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) -DCRT_BEGIN \ 1.1.1.2 root 739: -finhibit-size-directive -g0 -c $(srcdir)/crtstuff.c -o crtbegin.o 1.1 root 740: 741: crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h 742: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) -DCRT_END \ 1.1.1.2 root 743: -finhibit-size-directive -g0 -c $(srcdir)/crtstuff.c -o crtend.o 1.1 root 744: 745: # Compiling object files from source files. 746: 747: # Note that dependencies on obstack.h are not written 748: # because that file is not part of GCC. 749: # Dependencies on gvarargs.h are not written 750: # because all that file does, when not compiling with GCC, 751: # is include the system varargs.h. 752: 753: # C language specific files. 754: 1.1.1.3 root 755: c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h c-parse.h \ 756: c-tree.h input.h flags.h 1.1 root 757: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c 758: $(srcdir)/c-parse.c $(srcdir)/c-parse.h: $(srcdir)/c-parse.y 759: cd $(srcdir); $(BISON) $(BISONFLAGS) -d c-parse.y -o c-parse.c 1.1.1.5 ! root 760: $(srcdir)/c-parse.y: $(srcdir)/c-parse.in ! 761: sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \ ! 762: -e "/^ifc$$/d" -e "/^end ifc$$/d" \ ! 763: $(srcdir)/c-parse.in > $(srcdir)/c-parse.y 1.1 root 764: 765: c-decl.o : c-decl.c $(CONFIG_H) $(TREE_H) c-tree.h c-lex.h flags.h 766: c-typeck.o : c-typeck.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h 767: c-lang.o : c-lang.c $(CONFIG_H) $(TREE_H) 768: c-lex.o : c-lex.c $(CONFIG_H) $(TREE_H) c-lex.h c-tree.h c-parse.h \ 769: input.h flags.h 770: c-aux-info.o : c-aux-info.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h 771: c-convert.o : c-convert.c $(CONFIG_H) $(TREE_H) flags.h 1.1.1.4 root 772: c-pragma.o: c-pragma.c $(CONFIG_H) $(TREE_H) 1.1.1.5 ! root 773: c-iterate.o: c-iterate.c $(CONFIG_H) $(TREE_H) $(RTL_H) c-tree.h flags.h 1.1 root 774: 775: # C++ language specific files. 776: 1.1.1.5 ! root 777: cp-parse.o : $(srcdir)/cp-parse.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h cp-lex.h 1.1 root 778: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 779: `echo $(srcdir)/cp-parse.c | sed 's,^\./,,'` 780: 781: $(srcdir)/cp-parse.c $(srcdir)/cp-parse.h : $(srcdir)/cp-parse.y 1.1.1.4 root 782: @echo expect 29 shift/reduce conflicts and 14 reduce/reduce conflicts 1.1 root 783: cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o cp-parse.c cp-parse.y 1.1.1.4 root 784: cd $(srcdir); grep '^#define[ ]*YYEMPTY' cp-parse.c >>cp-parse.h 1.1 root 785: 786: cp-spew.o : cp-spew.c $(CONFIG_H) $(CPLUS_TREE_H) \ 1.1.1.5 ! root 787: $(srcdir)/cp-parse.h flags.h cp-lex.h 1.1 root 788: cp-lex.o : cp-lex.c $(CONFIG_H) $(CPLUS_TREE_H) \ 1.1.1.5 ! root 789: $(srcdir)/cp-parse.h $(srcdir)/cp-input.c flags.h cp-hash.h cp-lex.h 1.1 root 790: cp-decl.o : cp-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h \ 791: cp-lex.h cp-decl.h stack.h 792: cp-decl2.o : cp-decl2.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h \ 793: cp-lex.h cp-decl.h 794: cp-type2.o : cp-type2.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h 1.1.1.5 ! root 795: cp-typeck.o : cp-typeck.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h $(RTL_H) ! 796: cp-class.o : cp-class.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h ! 797: cp-call.o : cp-call.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h ! 798: cp-init.o : cp-init.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h $(RTL_H) 1.1 root 799: cp-method.o : cp-method.c $(CONFIG_H) $(CPLUS_TREE_H) 800: cp-cvt.o : cp-cvt.c $(CONFIG_H) $(CPLUS_TREE_H) 801: cp-search.o : cp-search.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h flags.h 802: cp-tree.o : cp-tree.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h 803: cp-ptree.o : cp-ptree.c $(CONFIG_H) $(CPLUS_TREE_H) 804: cp-gc.o : cp-gc.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h 1.1.1.5 ! root 805: cp-except.o : cp-except.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h $(RTL_H) 1.1 root 806: cp-expr.o : cp-expr.c $(CONFIG_H) $(CPLUS_TREE_H) $(RTL_H) flags.h \ 807: expr.h insn-codes.h 808: cp-edsel.o : cp-edsel.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h flags.h 1.1.1.5 ! root 809: cp-xref.o : cp-xref.c $(CONFIG_H) $(CPLUS_TREE_H) input.h 1.1 root 810: cp-pt.o : cp-pt.c $(CONFIG_H) $(CPLUS_TREE_H) cp-decl.h cp-parse.h 811: 1.1.1.3 root 812: # To make a configuration always use collect2, set USE_COLLECT2 to ld. 813: ld: collect2 814: rm -f ld 815: ln collect2 ld 816: 1.1 root 817: collect2 : collect2.o version.o $(LIBDEPS) 1.1.1.4 root 818: # Don't try modifying collect2 (aka ld) in place--it might be linking this. 819: -rm -f collect2 1.1 root 820: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o collect2 collect2.o version.o $(LIBS) 821: 822: collect2.o : collect2.c $(CONFIG_H) gstab.h 1.1.1.5 ! root 823: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ ! 824: -DTARGET_MACHINE=\"$(target)\" \ ! 825: -c `echo $(srcdir)/collect2.c | sed 's,^\./,,'` 1.1 root 826: 1.1.1.5 ! root 827: # Objective C language specific files. 1.1 root 828: 829: objc-parse.o : $(srcdir)/objc-parse.c $(CONFIG_H) $(TREE_H) c-lex.h \ 1.1.1.5 ! root 830: c-tree.h input.h flags.h objc-act.h 1.1 root 831: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/objc-parse.c 832: $(srcdir)/objc-parse.c : $(srcdir)/objc-parse.y 833: cd $(srcdir); $(BISON) $(BISONFLAGS) objc-parse.y -o objc-parse.c 1.1.1.5 ! root 834: $(srcdir)/objc-parse.y: $(srcdir)/c-parse.in ! 835: sed -e "/^ifc$$/,/^end ifc$$/d" \ ! 836: -e "/^ifobjc$$/d" -e "/^end ifobjc$$/d" \ ! 837: $(srcdir)/c-parse.in > $(srcdir)/objc-parse.y 1.1 root 838: 1.1.1.5 ! root 839: objc-act.o : objc-act.c $(CONFIG_H) $(TREE_H) $(RTL_H) c-tree.h c-lex.h \ ! 840: flags.h objc-act.h input.h function.h $(srcdir)/c-parse.h 1.1 root 841: 842: # A file used by all variants of C. 843: 844: c-common.o : c-common.c $(CONFIG_H) $(TREE_H) c-tree.h c-lex.h flags.h 845: 846: # Language-independent files. 847: 1.1.1.5 ! root 848: gcc.o: gcc.c $(CONFIG_H) gvarargs.h config.status 1.1 root 849: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 850: -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \ 1.1.1.2 root 851: -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \ 1.1 root 852: -DDEFAULT_TARGET_MACHINE=\"$(target)\" \ 1.1.1.5 ! root 853: -DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\" \ 1.1.1.4 root 854: -DTOOLDIR=\"$(tooldir)/\" \ 1.1.1.5 ! root 855: $(MAYBE_TARGET_DEFAULT) \ 1.1 root 856: -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'` 857: 858: dumpvers: dumpvers.c 859: 860: version.o: version.c 861: obstack.o: obstack.c 862: 1.1.1.5 ! root 863: convert.o: convert.c $(CONFIG_H) $(TREE_H) flags.h convert.h ! 864: 1.1 root 865: tree.o : tree.c $(CONFIG_H) $(TREE_H) gvarargs.h flags.h function.h 866: print-tree.o : print-tree.c $(CONFIG_H) $(TREE_H) 867: stor-layout.o : stor-layout.c $(CONFIG_H) $(TREE_H) function.h 868: fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H) flags.h 1.1.1.2 root 869: toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h input.h \ 1.1.1.5 ! root 870: insn-attr.h xcoffout.h defaults.h 1.1.1.3 root 871: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 1.1.1.4 root 872: $(MAYBE_TARGET_DEFAULT) $(MAYBE_USE_COLLECT2) \ 873: -c `echo $(srcdir)/toplev.c | sed 's,^\./,,'` 1.1 root 874: 875: rtl.o : rtl.c $(CONFIG_H) $(RTL_H) 876: 877: print-rtl.o : print-rtl.c $(CONFIG_H) $(RTL_H) 878: rtlanal.o : rtlanal.c $(CONFIG_H) $(RTL_H) 879: 1.1.1.4 root 880: varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h function.h \ 881: defaults.h insn-codes.h expr.h hard-reg-set.h regs.h xcoffout.h 1.1 root 882: function.o : function.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ 883: insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \ 884: recog.h output.h 885: stmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ 886: insn-flags.h insn-config.h insn-codes.h hard-reg-set.h expr.h loop.h recog.h 1.1.1.5 ! root 887: expr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ 1.1 root 888: insn-flags.h insn-codes.h expr.h insn-config.h recog.h output.h typeclass.h 889: calls.o : calls.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-codes.h \ 1.1.1.5 ! root 890: insn-flags.h gvarargs.h 1.1 root 891: expmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ 892: insn-flags.h insn-config.h insn-codes.h expr.h recog.h real.h 893: explow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h hard-reg-set.h \ 894: insn-config.h expr.h recog.h insn-flags.h insn-codes.h 895: optabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ 1.1.1.5 ! root 896: insn-flags.h insn-config.h insn-codes.h expr.h recog.h reload.h 1.1 root 897: dbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h regs.h \ 1.1.1.4 root 898: insn-config.h reload.h gstab.h xcoffout.h defaults.h output.h 1.1 root 899: sdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) gsyms.h flags.h \ 900: insn-config.h reload.h 901: dwarfout.o : dwarfout.c $(CONFIG_H) $(TREE_H) $(RTL_H) dwarf.h flags.h \ 1.1.1.4 root 902: insn-config.h reload.h output.h defaults.h 1.1.1.2 root 903: xcoffout.o : xcoffout.c $(CONFIG_H) $(TREE_H) $(RTL_H) xcoffout.h flags.h 1.1 root 904: emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) flags.h gvarargs.h function.h \ 905: regs.h insn-config.h insn-codes.h real.h expr.h 1.1.1.5 ! root 906: real.o : real.c $(CONFIG_H) $(TREE_H) 1.1.1.2 root 907: getpwd.o : getpwd.c $(CONFIG_H) 1.1 root 908: 909: integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h integrate.h \ 910: insn-flags.h insn-config.h insn-codes.h expr.h real.h function.h 911: 912: jump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \ 913: insn-config.h insn-flags.h insn-codes.h expr.h real.h 914: stupid.o : stupid.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h 915: 916: cse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h real.h \ 917: insn-config.h recog.h 918: loop.o : loop.c $(CONFIG_H) $(RTL_H) flags.h loop.h insn-config.h \ 919: insn-flags.h insn-codes.h regs.h hard-reg-set.h recog.h expr.h real.h 920: unroll.o : unroll.c $(CONFIG_H) $(RTL_H) insn-config.h insn-codes.h \ 921: integrate.h regs.h flags.h expr.h loop.h 922: flow.o : flow.c $(CONFIG_H) $(RTL_H) flags.h insn-config.h \ 923: basic-block.h regs.h hard-reg-set.h output.h 924: combine.o : combine.c $(CONFIG_H) $(RTL_H) gvarargs.h flags.h \ 925: insn-config.h insn-flags.h insn-codes.h insn-attr.h regs.h expr.h \ 1.1.1.5 ! root 926: basic-block.h recog.h real.h hard-reg-set.h 1.1 root 927: regclass.o : regclass.c $(CONFIG_H) $(RTL_H) hard-reg-set.h flags.h \ 1.1.1.4 root 928: basic-block.h regs.h insn-config.h recog.h reload.h real.h 1.1 root 929: local-alloc.o : local-alloc.c $(CONFIG_H) $(RTL_H) flags.h basic-block.h \ 930: regs.h hard-reg-set.h insn-config.h recog.h output.h 1.1.1.4 root 931: global.o : global.c $(CONFIG_H) $(RTL_H) flags.h \ 1.1 root 932: basic-block.h regs.h hard-reg-set.h insn-config.h output.h 933: 934: reload.o : reload.c $(CONFIG_H) $(RTL_H) flags.h \ 935: reload.h recog.h hard-reg-set.h insn-config.h insn-codes.h regs.h real.h 936: reload1.o : reload1.c $(CONFIG_H) $(RTL_H) flags.h expr.h \ 937: reload.h regs.h hard-reg-set.h insn-config.h insn-flags.h insn-codes.h \ 938: basic-block.h recog.h output.h 939: caller-save.o : caller-save.c $(CONFIG_H) $(RTL_H) flags.h \ 940: regs.h hard-reg-set.h insn-config.h basic-block.h recog.h reload.h expr.h 941: reorg.o : reorg.c $(CONFIG_H) $(RTL_H) conditions.h hard-reg-set.h \ 942: basic-block.h regs.h insn-config.h insn-attr.h insn-flags.h recog.h \ 943: flags.h output.h 944: sched.o : sched.c $(CONFIG_H) $(RTL_H) basic-block.h regs.h hard-reg-set.h \ 945: flags.h insn-config.h insn-attr.h 946: final.o : final.c $(CONFIG_H) $(RTL_H) gvarargs.h flags.h regs.h \ 947: recog.h conditions.h insn-config.h insn-attr.h real.h output.h \ 1.1.1.4 root 948: hard-reg-set.h insn-flags.h insn-codes.h gstab.h xcoffout.h defaults.h 1.1 root 949: recog.o : recog.c $(CONFIG_H) $(RTL_H) \ 950: regs.h recog.h hard-reg-set.h flags.h insn-config.h insn-attr.h \ 951: insn-flags.h insn-codes.h real.h 952: reg-stack.o : reg-stack.c $(CONFIG_H) $(RTL_H) $(TREE_H) \ 953: regs.h hard-reg-set.h flags.h insn-config.h 1.1.1.3 root 954: 1.1 root 955: aux-output.o : aux-output.c $(CONFIG_H) \ 956: $(RTL_H) regs.h hard-reg-set.h real.h insn-config.h conditions.h \ 957: insn-flags.h output.h insn-attr.h insn-codes.h 958: 959: # Normally this target is not used; but it is used if you 960: # define ALLOCA=alloca.o. In that case, you must get a suitable alloca.c 961: # from the GNU Emacs distribution. 962: alloca.o: alloca.c 963: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ALLOCA_FLAGS) \ 1.1.1.5 ! root 964: -c `echo $(srcdir)/alloca.c | sed 's,^\./,,'` 1.1 root 965: $(ALLOCA_FINISH) 966: 967: # Generate header and source files from the machine description, 968: # and compile them. 969: 970: .PRECIOUS: insn-config.h insn-flags.h insn-codes.h \ 971: insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c \ 972: insn-attr.h insn-attrtab.c 973: 974: # The following pair of rules has this effect: 975: # genconfig is run only if the md has changed since genconfig was last run; 976: # but the file insn-config.h is touched only when its contents actually change. 977: 978: # Each of the other insn-* files is handled by a similar pair of rules. 979: 1.1.1.4 root 980: # This causes an anomaly in the results of make -n 981: # because insn-* is older than stamp-* 982: # and thus make -n thinks that insn-* will be updated 983: # and force recompilation of things that depend on it. 1.1.1.5 ! root 984: # We use move-if-change precisely to avoid such recompilation. 1.1.1.4 root 985: # But there is no way to teach make -n that it will be avoided. 986: 1.1 root 987: # Each of the insn-*.[ch] rules has a semicolon at the end, 988: # for otherwise the system Make on SunOS 4.1 never tries 1.1.1.5 ! root 989: # to recompile insn-*.o. To avoid problems and extra noise from ! 990: # versions of make which don't like empty commands (nothing after the ! 991: # trailing `;'), we call true for each. 1.1 root 992: 1.1.1.5 ! root 993: insn-config.h: stamp-config ; @true 1.1 root 994: stamp-config : md genconfig $(srcdir)/move-if-change 995: ./genconfig md > tmp-config.h 996: $(srcdir)/move-if-change tmp-config.h insn-config.h 997: touch stamp-config 998: 1.1.1.5 ! root 999: insn-flags.h: stamp-flags ; @true 1.1 root 1000: stamp-flags : md genflags $(srcdir)/move-if-change 1001: ./genflags md > tmp-flags.h 1002: $(srcdir)/move-if-change tmp-flags.h insn-flags.h 1003: touch stamp-flags 1004: 1.1.1.5 ! root 1005: insn-codes.h: stamp-codes ; @true 1.1 root 1006: stamp-codes : md gencodes $(srcdir)/move-if-change 1007: ./gencodes md > tmp-codes.h 1008: $(srcdir)/move-if-change tmp-codes.h insn-codes.h 1009: touch stamp-codes 1010: 1011: insn-emit.o : insn-emit.c $(CONFIG_H) $(RTL_H) expr.h real.h output.h \ 1012: insn-config.h insn-flags.h insn-codes.h 1013: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-emit.c 1014: 1.1.1.5 ! root 1015: insn-emit.c: stamp-emit ; @true 1.1 root 1016: stamp-emit : md genemit $(srcdir)/move-if-change 1017: ./genemit md > tmp-emit.c 1018: $(srcdir)/move-if-change tmp-emit.c insn-emit.c 1019: touch stamp-emit 1020: 1021: insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h recog.h \ 1022: real.h output.h flags.h 1023: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.c 1024: 1.1.1.5 ! root 1025: insn-recog.c: stamp-recog ; @true 1.1 root 1026: stamp-recog : md genrecog $(srcdir)/move-if-change 1027: ./genrecog md > tmp-recog.c 1028: $(srcdir)/move-if-change tmp-recog.c insn-recog.c 1029: touch stamp-recog 1030: 1.1.1.5 ! root 1031: insn-opinit.o : insn-opinit.c $(CONFIG_H) $(RTL_H) insn-codes.h insn-flags.h \ ! 1032: insn-config.h flags.h rtl.h recog.h expr.h reload.h ! 1033: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.c ! 1034: ! 1035: insn-opinit.c: stamp-opinit ; @true ! 1036: stamp-opinit : md genopinit $(srcdir)/move-if-change ! 1037: ./genopinit md > tmp-opinit.c ! 1038: $(srcdir)/move-if-change tmp-opinit.c insn-opinit.c ! 1039: touch stamp-opinit ! 1040: 1.1 root 1041: insn-extract.o : insn-extract.c $(CONFIG_H) $(RTL_H) 1042: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-extract.c 1043: 1.1.1.5 ! root 1044: insn-extract.c: stamp-extract ; @true 1.1 root 1045: stamp-extract : md genextract $(srcdir)/move-if-change 1046: ./genextract md > tmp-extract.c 1047: $(srcdir)/move-if-change tmp-extract.c insn-extract.c 1048: touch stamp-extract 1049: 1050: insn-peep.o : insn-peep.c $(CONFIG_H) $(RTL_H) regs.h output.h real.h 1051: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-peep.c 1052: 1.1.1.5 ! root 1053: insn-peep.c: stamp-peep ; @true 1.1 root 1054: stamp-peep : md genpeep $(srcdir)/move-if-change 1055: ./genpeep md > tmp-peep.c 1056: $(srcdir)/move-if-change tmp-peep.c insn-peep.c 1057: touch stamp-peep 1058: 1059: insn-attrtab.o : insn-attrtab.c $(CONFIG_H) $(RTL_H) regs.h real.h output.h \ 1060: insn-attr.h insn-config.h 1061: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-attrtab.c 1062: 1.1.1.5 ! root 1063: insn-attr.h: stamp-attr ; @true 1.1 root 1064: stamp-attr : md genattr $(srcdir)/move-if-change 1065: ./genattr md > tmp-attr.h 1066: $(srcdir)/move-if-change tmp-attr.h insn-attr.h 1067: touch stamp-attr 1068: 1.1.1.5 ! root 1069: insn-attrtab.c: stamp-attrtab ; @true 1.1 root 1070: stamp-attrtab : md genattrtab $(srcdir)/move-if-change 1.1.1.3 root 1071: if cmp -s $(PREMADE_ATTRTAB_MD) md; \ 1072: then \ 1073: echo Using $(PREMADE_ATTRTAB); \ 1074: cp $(PREMADE_ATTRTAB) tmp-attrtab.c; \ 1075: else \ 1076: ./genattrtab md > tmp-attrtab.c; \ 1077: fi 1.1 root 1078: $(srcdir)/move-if-change tmp-attrtab.c insn-attrtab.c 1079: touch stamp-attrtab 1080: 1081: insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) regs.h real.h conditions.h \ 1082: hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h recog.h \ 1083: insn-codes.h 1084: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c 1085: 1.1.1.5 ! root 1086: insn-output.c: stamp-output ; @true 1.1 root 1087: stamp-output : md genoutput $(srcdir)/move-if-change 1088: ./genoutput md > tmp-output.c 1089: $(srcdir)/move-if-change tmp-output.c insn-output.c 1090: touch stamp-output 1091: 1092: # Compile the programs that generate insn-* from the machine description. 1093: # They are compiled with $(HOST_CC), and associated libraries, 1094: # since they need to run on this machine 1095: # even if GCC is being compiled to run on some other machine. 1096: 1097: # $(CONFIG_H) is omitted from the deps of the gen*.o 1098: # because these programs don't really depend on anything 1099: # about the target machine. They do depend on config.h itself, 1100: # since that describes the host machine. 1101: 1102: genconfig : genconfig.o $(HOST_RTL) $(HOST_LIBDEPS) 1103: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genconfig \ 1104: genconfig.o $(HOST_RTL) $(HOST_LIBS) 1105: 1.1.1.4 root 1106: genconfig.o : genconfig.c $(RTL_H) hconfig.h 1.1 root 1107: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genconfig.c 1108: 1109: genflags : genflags.o $(HOST_RTL) $(HOST_LIBDEPS) 1110: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genflags \ 1111: genflags.o $(HOST_RTL) $(HOST_LIBS) 1112: 1.1.1.4 root 1113: genflags.o : genflags.c $(RTL_H) hconfig.h 1.1 root 1114: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genflags.c 1115: 1116: gencodes : gencodes.o $(HOST_RTL) $(HOST_LIBDEPS) 1117: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o gencodes \ 1118: gencodes.o $(HOST_RTL) $(HOST_LIBS) 1119: 1.1.1.4 root 1120: gencodes.o : gencodes.c $(RTL_H) hconfig.h 1.1 root 1121: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gencodes.c 1122: 1123: genemit : genemit.o $(HOST_RTL) $(HOST_LIBDEPS) 1124: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genemit \ 1125: genemit.o $(HOST_RTL) $(HOST_LIBS) 1126: 1.1.1.4 root 1127: genemit.o : genemit.c $(RTL_H) hconfig.h 1.1 root 1128: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genemit.c 1129: 1.1.1.5 ! root 1130: genopinit : genopinit.o $(HOST_RTL) $(HOST_LIBDEPS) ! 1131: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genopinit \ ! 1132: genopinit.o $(HOST_RTL) $(HOST_LIBS) ! 1133: ! 1134: genopinit.o : genopinit.c $(RTL_H) hconfig.h ! 1135: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genopinit.c ! 1136: 1.1 root 1137: genrecog : genrecog.o $(HOST_RTL) $(HOST_LIBDEPS) 1138: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genrecog \ 1139: genrecog.o $(HOST_RTL) $(HOST_LIBS) 1140: 1.1.1.4 root 1141: genrecog.o : genrecog.c $(RTL_H) hconfig.h 1.1 root 1142: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genrecog.c 1143: 1144: genextract : genextract.o $(HOST_RTL) $(HOST_LIBDEPS) 1145: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genextract \ 1146: genextract.o $(HOST_RTL) $(HOST_LIBS) 1147: 1.1.1.4 root 1148: genextract.o : genextract.c $(RTL_H) hconfig.h insn-config.h 1.1 root 1149: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genextract.c 1150: 1151: genpeep : genpeep.o $(HOST_RTL) $(HOST_LIBDEPS) 1152: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genpeep \ 1153: genpeep.o $(HOST_RTL) $(HOST_LIBS) 1154: 1.1.1.4 root 1155: genpeep.o : genpeep.c $(RTL_H) hconfig.h 1.1 root 1156: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genpeep.c 1157: 1158: genattr : genattr.o $(HOST_RTL) $(HOST_LIBDEPS) 1159: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genattr \ 1160: genattr.o $(HOST_RTL) $(HOST_LIBS) 1161: 1.1.1.4 root 1162: genattr.o : genattr.c $(RTL_H) hconfig.h 1.1 root 1163: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattr.c 1164: 1.1.1.3 root 1165: genattrtab : genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_RTLANAL) $(HOST_LIBDEPS) 1.1 root 1166: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genattrtab \ 1.1.1.3 root 1167: genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_RTLANAL) $(HOST_LIBS) 1.1 root 1168: 1.1.1.4 root 1169: genattrtab.o : genattrtab.c $(RTL_H) hconfig.h insn-config.h 1.1 root 1170: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.c 1171: 1172: genoutput : genoutput.o $(HOST_RTL) $(HOST_LIBDEPS) 1173: $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o genoutput \ 1174: genoutput.o $(HOST_RTL) $(HOST_LIBS) 1175: 1.1.1.4 root 1176: genoutput.o : genoutput.c $(RTL_H) hconfig.h 1.1 root 1177: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genoutput.c 1178: 1179: # Compile the libraries to be used by gen*. 1180: # If we are not cross-building, gen* use the same .o's that cc1 will use, 1181: # and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict 1182: # with the rules for rtl.o, alloca.o, etc. 1183: $(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(CONFIG_H) $(RTL_H) 1184: rm -f $(HOST_PREFIX)rtl.c 1.1.1.4 root 1185: sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c 1.1 root 1186: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtl.c 1187: 1.1.1.3 root 1188: $(HOST_PREFIX_1)print-rtl.o: $(srcdir)/print-rtl.c $(CONFIG_H) $(RTL_H) 1189: rm -f $(HOST_PREFIX)print-rtl.c 1.1.1.4 root 1190: sed -e 's/config[.]h/hconfig.h/' $(srcdir)/print-rtl.c > $(HOST_PREFIX)print-rtl.c 1.1.1.3 root 1191: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)print-rtl.c 1192: 1.1 root 1193: $(HOST_PREFIX_1)rtlanal.o: $(srcdir)/rtlanal.c $(CONFIG_H) $(RTL_H) 1194: rm -f $(HOST_PREFIX)rtlanal.c 1.1.1.4 root 1195: sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtlanal.c > $(HOST_PREFIX)rtlanal.c 1.1 root 1196: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtlanal.c 1197: 1198: $(HOST_PREFIX_1)alloca.o: alloca.c 1199: rm -f $(HOST_PREFIX)alloca.c 1200: cp $(srcdir)/alloca.c $(HOST_PREFIX)alloca.c 1201: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)alloca.c 1202: 1203: $(HOST_PREFIX_1)obstack.o: obstack.c 1204: rm -f $(HOST_PREFIX)obstack.c 1.1.1.4 root 1205: sed -e 's/config[.]h/hconfig.h/' $(srcdir)/obstack.c > $(HOST_PREFIX)obstack.c 1.1 root 1206: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)obstack.c 1207: 1208: $(HOST_PREFIX_1)malloc.o: malloc.c 1209: rm -f $(HOST_PREFIX)malloc.c 1.1.1.4 root 1210: sed -e 's/config[.]h/hconfig.h/' $(srcdir)/malloc.c > $(HOST_PREFIX)malloc.c 1.1 root 1211: $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)malloc.c 1212: 1213: # This satisfies the dependency that we get if you cross-compile a compiler 1214: # that does not need to compile alloca, malloc or whatever. 1215: $(HOST_PREFIX_1): 1216: touch $(HOST_PREFIX_1) 1217: 1218: # Remake cpp and protoize. 1219: 1220: # Making the preprocessor 1221: cpp: cccp 1222: -rm -f cpp 1223: ln cccp cpp 1224: cccp: cccp.o cexp.o version.o $(LIBDEPS) 1225: $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS) 1226: cexp.o: $(srcdir)/cexp.c $(CONFIG_H) 1227: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/cexp.c 1228: $(srcdir)/cexp.c: $(srcdir)/cexp.y 1229: cd $(srcdir); $(BISON) -o cexp.c cexp.y 1.1.1.5 ! root 1230: cccp.o: cccp.c $(CONFIG_H) pcp.h version.c config.status 1.1 root 1231: # The reason we use $(libdir)/g++-include rather than using libsubdir 1232: # is for compatibility with the current version of libg++. 1233: $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 1.1.1.2 root 1234: -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ 1235: -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \ 1.1.1.5 ! root 1236: -DLOCAL_INCLUDE_DIR=\"$(local_prefix)/include\" \ 1.1.1.2 root 1237: -DCROSS_INCLUDE_DIR=\"$(libsubdir)/sys-include\" \ 1.1.1.5 ! root 1238: -DTOOL_INCLUDE_DIR=\"$(tooldir)/include\" \ 1.1.1.4 root 1239: -DTOOLDIR=\"$(tooldir)/\" \ 1.1 root 1240: -c `echo $(srcdir)/cccp.c | sed 's,^\./,,'` 1241: 1.1.1.5 ! root 1242: # Note for the stamp targets, we run the program `true' instead of ! 1243: # having an empty command (nothing following the semicolon). ! 1244: 1.1.1.4 root 1245: proto: config.status protoize unprotoize SYSCALLS.c.X 1.1 root 1246: 1.1.1.2 root 1247: protoize: protoize.o getopt.o getopt1.o getpwd.o version.o $(LIBDEPS) 1.1 root 1248: $(CC) $(ALL_CFLAGS) $(LDFLAGS) \ 1.1.1.2 root 1249: protoize.o getopt.o getopt1.o getpwd.o version.o $(LIBS) -o $@ 1.1.1.5 ! root 1250: protoize.o: stamp-proto ; @true 1.1.1.3 root 1251: 1252: unprotoize: unprotoize.o getopt.o getopt1.o getpwd.o version.o $(LIBDEPS) 1253: $(CC) $(ALL_CFLAGS) $(LDFLAGS) \ 1254: unprotoize.o getopt.o getopt1.o getpwd.o version.o $(LIBS) -o $@ 1.1.1.5 ! root 1255: unprotoize.o: stamp-proto ; @true 1.1.1.3 root 1256: 1257: stamp-proto: $(srcdir)/protoize.c getopt.h $(CONFIG_H) 1.1 root 1258: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 1259: -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ 1260: -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \ 1261: -DCROSS_INCLUDE_DIR=\"$(libsubdir)/sys-include\" \ 1.1.1.5 ! root 1262: -DTOOL_INCLUDE_DIR=\"$(tooldir)/include\" \ ! 1263: -DLOCAL_INCLUDE_DIR=\"$(local_prefix)/include\" \ 1.1 root 1264: -DSTD_PROTO_DIR=\"$(libsubdir)\" \ 1.1.1.3 root 1265: -DUNPROTOIZE $(srcdir)/protoize.c 1266: mv protoize.o unprotoize.o 1.1 root 1267: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 1268: -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ 1269: -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \ 1270: -DCROSS_INCLUDE_DIR=\"$(libsubdir)/sys-include\" \ 1.1.1.5 ! root 1271: -DTOOL_INCLUDE_DIR=\"$(tooldir)/include\" \ ! 1272: -DLOCAL_INCLUDE_DIR=\"$(local_prefix)/include\" \ 1.1 root 1273: -DSTD_PROTO_DIR=\"$(libsubdir)\" \ 1.1.1.3 root 1274: $(srcdir)/protoize.c 1.1.1.4 root 1275: touch stamp-proto 1.1 root 1276: 1277: getopt.o: $(srcdir)/getopt.c getopt.h 1278: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/getopt.c 1279: getopt1.o: $(srcdir)/getopt1.c getopt.h 1280: $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/getopt1.c 1281: 1282: # This info describes the target machine, so compile with GCC just built. 1.1.1.3 root 1283: SYSCALLS.c.X: $(srcdir)/sys-types.h $(srcdir)/sys-protos.h $(GCC_PASSES) 1284: -rm -f SYSCALLS.c tmp-SYSCALLS.s 1285: cat $(srcdir)/sys-types.h $(srcdir)/sys-protos.h > SYSCALLS.c 1.1 root 1286: $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ 1.1.1.3 root 1287: -aux-info $@ -S -o tmp-SYSCALLS.s SYSCALLS.c 1288: -rm -f SYSCALLS.c tmp-SYSCALLS.s 1289: 1290: test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES) 1291: -rm -f tmp-proto.[cso] 1292: cp $(srcdir)/protoize.c tmp-proto.c 1293: chmod u+w tmp-proto.c 1294: ./protoize -N -B ./ -x getopt.h -c "-B./ -Wall -Wwrite-strings \ 1295: $(CFLAGS) $(INCLUDES) \ 1296: -DGCC_INCLUDE_DIR=0 \ 1297: -DGPLUSPLUS_INCLUDE_DIR=0 \ 1298: -DCROSS_INCLUDE_DIR=0 \ 1.1.1.5 ! root 1299: -DTOOL_INCLUDE_DIR=0 \ 1.1.1.3 root 1300: -DSTD_PROTO_DIR=0" tmp-proto.c 1.1.1.4 root 1301: @echo '**********' Expect 400 lines of differences. 1.1.1.3 root 1302: -diff $(srcdir)/protoize.c tmp-proto.c > tmp-proto.diff 1303: -wc -l tmp-proto.diff 1304: ./unprotoize -N -x getopt.h -c "-B./ -Wall -Wwrite-strings \ 1305: $(CFLAGS) $(INCLUDES) \ 1306: -DGCC_INCLUDE_DIR=0 \ 1307: -DGPLUSPLUS_INCLUDE_DIR=0 \ 1308: -DCROSS_INCLUDE_DIR=0 \ 1.1.1.5 ! root 1309: -DTOOL_INCLUDE_DIR=0 \ 1.1.1.3 root 1310: -DSTD_PROTO_DIR=0" tmp-proto.c 1311: @echo Expect zero differences. 1312: diff $(srcdir)/protoize.c tmp-proto.c | cat 1313: -rm -f tmp-proto.[cso] 1.1 root 1314: 1.1.1.5 ! root 1315: # Build the include directory. The stamp files are stmp-* rather than ! 1316: # stamp-* so that mostlyclean does not force the include directory to ! 1317: # be rebuilt. ! 1318: ! 1319: # Build the include directory except for float.h (which depends upon ! 1320: # enquire). ! 1321: stmp-int-hdrs: stmp-fixinc $(USER_H) gvarargs.h gstdarg.h gstddef.h \ ! 1322: xlimits.h objc-headers ! 1323: # Copy in the headers provided with gcc. ! 1324: # The sed command gets just the last file name component; ! 1325: # this is necessary because VPATH could add a dirname. ! 1326: # Using basename would be simpler, but some systems don't have it. ! 1327: objdir=`pwd`; \ ! 1328: cd $(srcdir); \ ! 1329: for file in $(USER_H); do \ ! 1330: realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ ! 1331: rm -f $$objdir/include/$$realfile; \ ! 1332: cp $$realfile $$objdir/include; \ ! 1333: chmod a+r $$objdir/include/$$realfile; \ ! 1334: done ! 1335: rm -f include/varargs.h ! 1336: cp $(srcdir)/gvarargs.h include/varargs.h ! 1337: chmod a+r include/varargs.h ! 1338: rm -f include/stdarg.h ! 1339: cp $(srcdir)/gstdarg.h include/stdarg.h ! 1340: chmod a+r include/stdarg.h ! 1341: rm -f include/stddef.h ! 1342: cp $(srcdir)/gstddef.h include/stddef.h ! 1343: chmod a+r include/stddef.h ! 1344: rm -f include/limits.h ! 1345: cp xlimits.h include/limits.h ! 1346: chmod a+r include/limits.h ! 1347: # Install the README ! 1348: rm -f include/README ! 1349: cp $(srcdir)/README-fixinc include/README ! 1350: chmod a+r include/README ! 1351: touch stmp-int-hdrs ! 1352: ! 1353: # Build the complete include directory. ! 1354: stmp-headers: stmp-int-hdrs gfloat.h ! 1355: rm -f include/float.h ! 1356: cp gfloat.h include/float.h ! 1357: chmod a+r include/float.h ! 1358: touch stmp-headers ! 1359: ! 1360: # Build fixed copies of system files. ! 1361: stmp-fixinc: $(srcdir)/$(FIXINCLUDES) gsyslimits.h ! 1362: rm -rf include ! 1363: mkdir include ! 1364: if [ x$(FIXINCLUDES) != xMakefile.in ]; \ ! 1365: then \ ! 1366: for dir in $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); do \ ! 1367: if [ -d $$dir ]; \ ! 1368: then \ ! 1369: $(srcdir)/$(FIXINCLUDES) include $$dir $(srcdir); \ ! 1370: else true; fi; \ ! 1371: done; \ ! 1372: else true; \ ! 1373: fi ! 1374: rm -f include/syslimits.h ! 1375: if [ -f include/limits.h ]; then \ ! 1376: mv include/limits.h include/syslimits.h; \ ! 1377: else \ ! 1378: cp $(srcdir)/gsyslimits.h include/syslimits.h; \ ! 1379: fi ! 1380: chmod a+r include/syslimits.h ! 1381: touch stmp-fixinc ! 1382: ! 1383: # copy objc header files into build directory ! 1384: objc-headers: ! 1385: if [ -d objc ]; then true; else mkdir objc; fi ! 1386: thisdir1=`pwd`; \ ! 1387: srcdir1=`cd $(srcdir); pwd`; \ ! 1388: cd objc; \ ! 1389: $(MAKE) -f $${srcdir1}/objc/Makefile copy-headers \ ! 1390: srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \ ! 1391: GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \ ! 1392: GCC_CFLAGS="$(GCC_CFLAGS)" incinstalldir=$${thisdir1}/include ! 1393: touch objc-headers ! 1394: 1.1 root 1395: # Remake the info files. 1396: 1.1.1.5 ! root 1397: doc: info ! 1398: info: $(srcdir)/cpp.info $(srcdir)/gcc.info 1.1 root 1399: 1.1.1.3 root 1400: $(srcdir)/cpp.info: cpp.texi 1.1.1.5 ! root 1401: cd $(srcdir); $(MAKEINFO) cpp.texi 1.1 root 1402: 1.1.1.3 root 1403: #$(srcdir)/gplus.info: gplus.texi 1.1.1.5 ! root 1404: # $(MAKEINFO) `echo $(srcdir)/gplus.texi | sed 's,^\./,,'` 1.1 root 1405: 1.1.1.3 root 1406: $(srcdir)/gcc.info: gcc.texi extend.texi install.texi invoke.texi \ 1407: md.texi rtl.texi tm.texi 1.1.1.5 ! root 1408: cd $(srcdir); $(MAKEINFO) gcc.texi ! 1409: ! 1410: dvi: $(srcdir)/gcc.dvi $(srcdir)/cpp.dvi 1.1.1.3 root 1411: 1.1.1.4 root 1412: # This works with GNU Make's default rule. 1413: $(srcdir)/gcc.dvi: gcc.texi extend.texi install.texi invoke.texi \ 1414: md.texi rtl.texi tm.texi 1.1.1.5 ! root 1415: $(TEXI2DVI) $< 1.1.1.4 root 1416: 1417: # This works with GNU Make's default rule. 1418: $(srcdir)/cpp.dvi: cpp.texi 1.1.1.5 ! root 1419: $(TEXI2DVI) $< 1.1.1.4 root 1420: 1.1.1.3 root 1421: $(srcdir)/INSTALL: install1.texi install.texi 1.1.1.5 ! root 1422: $(MAKEINFO) -D INSTALLONLY --no-header `echo $(srcdir)/install1.texi | sed 's,^\./,,'` 1.1 root 1423: 1424: # Deletion of files made during compilation. 1425: # There are four levels of this: 1.1.1.3 root 1426: # `mostlyclean', `clean', `distclean' and `realclean'. 1.1 root 1427: # `mostlyclean' is useful while working on a particular type of machine. 1.1.1.2 root 1428: # It deletes most, but not all, of the files made by compilation. 1.1 root 1429: # It does not delete libgcc.a or its parts, so it won't have to be recompiled. 1.1.1.2 root 1430: # `clean' deletes everything made by running `make all'. 1.1.1.3 root 1431: # `distclean' also deletes the files made by config. 1.1 root 1432: # `realclean' also deletes everything that could be regenerated automatically. 1433: 1.1.1.3 root 1434: 1.1 root 1435: mostlyclean: 1436: -rm -f $(STAGESTUFF) 1.1.1.4 root 1437: # Clean the objc subdir if we created one. 1438: if [ -d objc ]; then \ 1439: srcdir1=`cd $(srcdir); pwd`; \ 1440: cd objc; $(MAKE) -f $$srcdir1/objc/Makefile mostlyclean; \ 1441: else true; fi 1442: -rm -f libobjc.a 1.1 root 1443: # Delete the temporary source copies for cross compilation. 1444: -rm -f $(HOST_PREFIX_1)rtl.c $(HOST_PREFIX_1)rtlanal.c 1445: -rm -f $(HOST_PREFIX_1)alloca.c $(HOST_PREFIX_1)malloc.c 1446: -rm -f $(HOST_PREFIX_1)obstack.c 1447: # Delete the temp files made in the course of building libgcc.a. 1.1.1.4 root 1448: -rm -f tmplibgcc* tmpcopy xlimits.h 1.1 root 1449: for name in $(LIB1FUNCS); do rm -f $${name}.c; done 1450: # Delete other temporary files. 1.1.1.5 ! root 1451: -rm -f tmp-float.h tmp-gcc.xtar.gz 1.1.1.3 root 1452: -rm -f tmp-foo1 tmp-foo2 tmp-proto.* tmp-unproto.1 tmp-SYSCALLS.s 1.1 root 1453: # Delete the stamp files. 1454: -rm -f stamp-* tmp-* 1.1.1.2 root 1455: # Delete debugging dump files. 1.1 root 1456: -rm -f *.greg *.lreg *.combine *.flow *.cse *.jump *.rtl *.tree *.loop 1.1.1.2 root 1457: -rm -f *.dbr *.jump2 *.sched *.cse2 *.sched2 *.stack 1458: # Delete some files made during installation. 1.1.1.5 ! root 1459: -rm -f specs gfloat.h float.h-* enquire SYSCALLS.c.X SYSCALLS.c 1.1.1.2 root 1460: -rm -f collect collect2 ld mips-tfile mips-tdump alloca.s 1461: # Delete unwanted output files from TeX. 1.1 root 1462: -rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg 1.1.1.2 root 1463: # Delete sorted indices we don't actually use. 1464: -rm -f gcc.vrs gcc.kys gcc.tps gcc.pgs gcc.fns 1465: # Delete core dumps. 1.1.1.4 root 1466: -rm -f core config/core 1.1 root 1467: 1.1.1.3 root 1468: # Delete all files made by compilation 1469: # that don't exist in the distribution. 1.1 root 1470: clean: mostlyclean 1.1.1.3 root 1471: # It may not be quite desirable to delete unprotoize.c here, 1472: # but the spec for `make clean' requires it. 1473: # Using unprotoize.c is not quite right in the first place, 1474: # but what better way is there? 1475: -rm -f libgcc.a libgcc1.a libgcc2.a libgcc2.ready libgcc1.null 1476: -rm -f *.dvi 1.1.1.5 ! root 1477: # Delete the include directory. ! 1478: -rm -rf stmp-* include objc-headers 1.1 root 1479: 1.1.1.3 root 1480: # Delete all files that users would normally create 1481: # while building and installing GCC. 1.1.1.2 root 1482: distclean: clean 1.1.1.4 root 1483: -rm -f tm.h aux-output.c config.h md config.status tconfig.h hconfig.h 1.1.1.3 root 1484: -rm -f Makefile *.oaux 1485: -rm -fr stage1 stage2 stage3 stage4 1.1.1.5 ! root 1486: -rm -f cp-parse.output ! 1487: -rm -f objc-parse.output ! 1488: -rm -f c-parse.output 1.1 root 1489: 1.1.1.2 root 1490: # Delete anything likely to be found in the source directory 1.1 root 1491: # that shouldn't be in the distribution. 1.1.1.2 root 1492: extraclean: distclean 1.1.1.5 ! root 1493: -rm -rf =* ./"#"* *~* config/=* config/"#"* config/*~* 1.1.1.3 root 1494: -rm -f patch* *.orig *.rej config/patch* config/*.orig config/*.rej 1.1.1.5 ! root 1495: -rm -f config/*/=* config/*/"#"* config/*/*~* ! 1496: -rm -f config/*/*.orig config/*/*.rej ! 1497: -rm -f objc/=* objc/"#"* objc/*~* ! 1498: -rm -f objc/*.orig objc/*.rej ! 1499: -rm -f *.dvi *.oaux *.d *.[zZ] *.gz ! 1500: -rm -f *.tar *.xtar *diff *.diff.* *.tar.* *.xtar.* *diffs ! 1501: -rm -f *lose config/*lose config/*/*lose 1.1.1.4 root 1502: -rm -f *.s *.s[0-9] *.i install1.texi config/ChangeLog 1.1 root 1503: 1504: # Get rid of every file that's generated from some other file. 1505: # Most of these files ARE PRESENT in the GCC distribution. 1.1.1.2 root 1506: realclean: distclean 1.1.1.4 root 1507: -rm -f c-parse.y objc-parse.y 1.1 root 1508: -rm -f cp-parse.c cp-parse.h cp-parse.output 1509: -rm -f objc-parse.c objc-parse.output 1510: -rm -f c-parse.c c-parse.h c-parse.output 1511: -rm -f cexp.c cexp.output TAGS 1512: -rm -f cpp.info* cpp.??s cpp.*aux 1513: -rm -f gcc.info* gcc.??s gcc.*aux 1514: -rm -f gplus.info* gplus.??s gplus.*aux 1515: 1516: # Entry points `install' and `uninstall'. 1517: # Also use `install-collect2' to install collect2 when the config files don't. 1518: 1.1.1.4 root 1519: # The semicolon is to prevent the install.sh -> install default rule 1.1.1.5 ! root 1520: # from doing anything. Having it run true helps avoid problems and ! 1521: # noise from versions of make which don't like to have null commands. ! 1522: install: $(INSTALL_TARGET) ; @true ! 1523: ! 1524: # Copy the compiler files into directories where they will be run. ! 1525: install-normal: install-common $(INSTALL_HEADERS) install-libgcc install-man \ ! 1526: install-info 1.1 root 1527: 1.1.1.4 root 1528: # Do nothing while making gcc with a cross-compiler. The person who 1529: # makes gcc for the target machine has to know how to put a complete 1530: # gcc together by hand. 1531: install-build: force 1532: @echo You have to install gcc on your target machine by hand. 1533: 1.1 root 1534: # Run this on the target machine 1535: # to finish installation of cross compiler. 1536: install-cross-rest: install-float-h-cross 1537: 1538: # Install float.h for cross compiler. 1539: # Run this on the target machine! 1540: install-float-h-cross: 1.1.1.5 ! root 1541: # if [ -f enquire ] ; then true; else false; fi ! 1542: # Note: don't use -. We should fail right away if enquire was not made. ! 1543: ./enquire -f > $(tmpdir)/float.h 1.1 root 1544: -rm -f $(libsubdir)/include/float.h 1.1.1.4 root 1545: $(INSTALL_DATA) $(tmpdir)/float.h $(libsubdir)/include/float.h 1546: -rm -f $(tmpdir)/float.h 1.1 root 1547: chmod a-x $(libsubdir)/include/float.h 1548: 1549: # Create the installation directory. 1550: install-dir: 1.1.1.3 root 1551: -if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; fi 1552: -if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib ; fi 1.1.1.5 ! root 1553: # This dir isn't curretly searched by cpp. ! 1554: # -if [ -d $(libdir)/gcc-lib/include ] ; then true ; else mkdir $(libdir)/gcc-lib/include ; fi 1.1.1.3 root 1555: -if [ -d $(libdir)/gcc-lib/$(target) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target) ; fi 1556: -if [ -d $(libdir)/gcc-lib/$(target)/$(version) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target)/$(version) ; fi 1557: -if [ -d $(libdir)/gcc-lib/$(target)/$(version)/include ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target)/$(version)/include ; fi 1558: -if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; fi 1.1.1.4 root 1559: -if [ -d $(includedir) ] ; then true ; else mkdir $(includedir) ; fi 1.1.1.5 ! root 1560: -if [ -d $(tooldir) ] ; then true ; else mkdir $(tooldir) ; fi ! 1561: -if [ -d $(assertdir) ] ; then true ; else mkdir $(assertdir) ; fi ! 1562: -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi 1.1 root 1563: # We don't use mkdir -p to create the parents of mandir, 1564: # because some systems don't support it. 1565: # Instead, we use this technique to create the immediate parent of mandir. 1.1.1.3 root 1566: -parent=`echo $(mandir)|sed -e 's@/[^/]*$$@@'`; \ 1.1 root 1567: if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi 1568: -if [ -d $(mandir) ] ; then true ; else mkdir $(mandir) ; fi 1569: 1570: # Install the compiler executables built during cross compilation. 1.1.1.4 root 1571: # Deps on $(srcdir)/g++ $(srcdir)/c++ would be natural here, 1572: # but the latter would get confused with the target `c++'. 1573: install-common: native install-dir xgcc $(EXTRA_PARTS) 1.1 root 1574: for file in $(COMPILERS); do \ 1575: if [ -f $$file ] ; then \ 1576: rm -f $(libsubdir)/$$file; \ 1577: $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \ 1578: else true; \ 1579: fi; \ 1580: done 1.1.1.3 root 1581: for file in $(EXTRA_PASSES) $(EXTRA_PARTS) $(EXTRA_PROGRAMS) $(USE_COLLECT2) ..; do \ 1.1 root 1582: if [ x"$$file" != x.. ]; then \ 1583: rm -f $(libsubdir)/$$file; \ 1584: $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \ 1585: else true; fi; \ 1586: done 1.1.1.4 root 1587: # Don't mess with specs if it doesn't exist yet. 1588: -if [ -f specs ] ; then \ 1589: rm -f $(libsubdir)/specs; \ 1590: $(INSTALL_DATA) specs $(libsubdir)/specs; \ 1591: fi 1.1.1.5 ! root 1592: # Install the driver program as $(target)-gcc 1.1 root 1593: # and also as either gcc (if native) or $(tooldir)/bin/gcc. 1594: -if [ -f gcc-cross ] ; then \ 1.1.1.5 ! root 1595: rm -f $(bindir)/$(target)-gcc; \ ! 1596: $(INSTALL_PROGRAM) gcc-cross $(bindir)/$(target)-gcc; \ 1.1 root 1597: if [ -d $(tooldir)/bin/. ] ; then \ 1598: rm -f $(tooldir)/bin/gcc; \ 1599: $(INSTALL_PROGRAM) gcc-cross $(tooldir)/bin/gcc; \ 1600: else true; fi; \ 1601: else \ 1602: rm -f $(bindir)/gcc; \ 1.1.1.4 root 1603: $(INSTALL_PROGRAM) xgcc $(bindir)/gcc; \ 1.1.1.5 ! root 1604: rm -f $(bindir)/$(target)-gcc-1; \ ! 1605: ln $(bindir)/gcc $(bindir)/$(target)-gcc-1; \ ! 1606: mv $(bindir)/$(target)-gcc-1 $(bindir)/$(target)-gcc; \ 1.1 root 1607: fi 1.1.1.4 root 1608: # Install protoize if it was compiled. 1609: -if [ -f protoize ]; \ 1610: then \ 1611: rm -f $(bindir)/protoize; \ 1612: $(INSTALL_PROGRAM) protoize $(bindir)/protoize; \ 1613: rm -f $(bindir)/unprotoize; \ 1614: $(INSTALL_PROGRAM) unprotoize $(bindir)/unprotoize; \ 1615: rm -f $(libsubdir)/SYSCALLS.c.X; \ 1616: $(INSTALL_DATA) SYSCALLS.c.X $(libsubdir)/SYSCALLS.c.X; \ 1617: chmod a-x $(libsubdir)/SYSCALLS.c.X; \ 1618: fi 1.1.1.5 ! root 1619: -if [ -f cc1plus ] ; then \ ! 1620: rm -f $(bindir)/c++ ; \ ! 1621: $(INSTALL_PROGRAM) $(srcdir)/c++ $(bindir)/c++ ; \ ! 1622: rm -f $(bindir)/g++ ; \ ! 1623: $(INSTALL_PROGRAM) $(srcdir)/g++ $(bindir)/g++ ; \ ! 1624: fi 1.1 root 1625: -rm -f $(libsubdir)/cpp 1626: $(INSTALL_PROGRAM) cpp $(libsubdir)/cpp 1627: 1.1.1.5 ! root 1628: # Install the info files. ! 1629: install-info: doc ! 1630: -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* ! 1631: cd $(srcdir); for f in cpp.info* gcc.info*; \ ! 1632: do $(INSTALL_DATA) $$f $(infodir)/$$f; done ! 1633: -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info* ! 1634: 1.1 root 1635: # Install the man pages. 1.1.1.4 root 1636: install-man: install-dir $(srcdir)/gcc.1 $(srcdir)/cccp.1 $(srcdir)/g++.1 1.1 root 1637: -rm -f $(mandir)/gcc$(manext) 1.1.1.3 root 1638: -$(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/gcc$(manext) 1639: -chmod a-x $(mandir)/gcc$(manext) 1.1.1.2 root 1640: -rm -f $(mandir)/cccp$(manext) 1.1.1.3 root 1641: -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext) 1642: -chmod a-x $(mandir)/cccp$(manext) 1643: -$(INSTALL_DATA) $(srcdir)/g++.1 $(mandir)/g++$(manext) 1644: -chmod a-x $(mandir)/g++$(manext) 1.1 root 1645: 1646: # Install the library. 1.1.1.3 root 1647: install-libgcc: libgcc.a install-dir 1.1 root 1648: -if [ -f libgcc.a ] ; then \ 1649: rm -f $(libsubdir)/libgcc.a; \ 1650: $(INSTALL_DATA) libgcc.a $(libsubdir)/libgcc.a; \ 1651: if $(RANLIB_TEST) ; then \ 1652: (cd $(libsubdir); $(RANLIB) libgcc.a); else true; fi; \ 1653: chmod a-x $(libsubdir)/libgcc.a; \ 1654: else true; fi 1655: 1.1.1.4 root 1656: # Install the objc run time library. 1657: install-libobjc: libobjc.a install-dir 1658: -if [ -f libobjc.a ] ; then \ 1659: rm -f $(libsubdir)/libobjc.a; \ 1660: $(INSTALL_DATA) libobjc.a $(libsubdir)/libobjc.a; \ 1661: if $(RANLIB_TEST) ; then \ 1662: (cd $(libsubdir); $(RANLIB) libobjc.a); else true; fi; \ 1663: chmod a-x $(libsubdir)/libobjc.a; \ 1664: else true; fi 1665: 1.1.1.5 ! root 1666: # Install all the header files built in the include subdirectory. ! 1667: install-headers: install-include-dir $(INSTALL_HEADERS_DIR) install-assert-h ! 1668: # Fix symlinks to absolute paths in the installed include directory to ! 1669: # point to the installed directory, not the build directory. ! 1670: -files=`cd $(libsubdir)/include; find . -type l -print 2>/dev/null`; \ ! 1671: if [ $$? -eq 0 ]; then \ ! 1672: dir=`cd include; pwd`; \ ! 1673: for i in $$files; do \ ! 1674: dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \ ! 1675: if expr "$$dest" : "$$dir.*" > /dev/null; then \ ! 1676: rm -f $(libsubdir)/include/$$i; \ ! 1677: ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \ ! 1678: fi; \ ! 1679: done; \ ! 1680: fi 1.1 root 1681: 1.1.1.5 ! root 1682: # Create or recreate the gcc private include file directory. ! 1683: install-include-dir: install-dir ! 1684: -rm -rf $(libsubdir)/include ! 1685: mkdir $(libsubdir)/include ! 1686: -chmod a+rx $(libsubdir)/include ! 1687: ! 1688: # Install the include directory using tar. ! 1689: install-headers-tar: stmp-headers install-include-dir ! 1690: cd include; tar cf - . | (cd $(libsubdir)/include; tar $(TAROUTOPTS) - ) ! 1691: ! 1692: # Install the include directory using cpio. ! 1693: install-headers-cpio: stmp-headers install-include-dir ! 1694: cd include; find . -print | cpio -pdum $(libsubdir)/include ! 1695: ! 1696: # Put assert.h where it won't override GNU libc's assert.h. ! 1697: # It goes in a dir that is searched after GNU libc's headers; ! 1698: # thus, the following conditionals are no longer needed. ! 1699: # But it's not worth deleting them now. ! 1700: ## Don't replace the assert.h already there if it is not from GCC. ! 1701: ## This code would be simpler if it tested for -f ... && ! grep ... ! 1702: ## but supposedly the ! operator is missing in sh on some systems. ! 1703: install-assert-h: assert.h install-dir 1.1.1.4 root 1704: if [ -f $(assertdir)/assert.h ]; \ 1705: then \ 1.1.1.5 ! root 1706: if grep "__eprintf" $(assertdir)/assert.h >/dev/null; \ 1.1.1.4 root 1707: then \ 1708: rm -f $(assertdir)/assert.h; \ 1709: $(INSTALL_DATA) $(srcdir)/assert.h $(assertdir)/assert.h; \ 1710: chmod a-x $(assertdir)/assert.h; \ 1711: else true; \ 1712: fi; \ 1713: else \ 1714: rm -f $(assertdir)/assert.h; \ 1715: $(INSTALL_DATA) $(srcdir)/assert.h $(assertdir)/assert.h; \ 1716: chmod a-x $(assertdir)/assert.h; \ 1717: fi 1.1 root 1718: 1719: # Use this target to install the program `collect2' under the name `ld'. 1720: install-collect2: collect2 1721: $(INSTALL_PROGRAM) collect2 $(libsubdir)/ld 1722: # Install the driver program as $(libsubdir)/gcc for collect2. 1.1.1.4 root 1723: $(INSTALL_PROGRAM) xgcc $(libsubdir)/gcc 1.1 root 1724: 1725: # Cancel installation by deleting the installed files. 1726: uninstall: 1727: -rm -rf $(libsubdir) 1728: -rm -rf $(bindir)/gcc 1729: -rm -rf $(bindir)/protoize 1730: -rm -rf $(bindir)/unprotoize 1731: -rm -rf $(mandir)/gcc$(manext) 1.1.1.5 ! root 1732: -rm -rf $(mandir)/g++$(manext) 1.1.1.2 root 1733: -rm -rf $(mandir)/cccp$(manext) 1.1 root 1734: -rm -rf $(mandir)/protoize$(manext) 1735: -rm -rf $(mandir)/unprotoize$(manext) 1736: 1737: # These exist for maintenance purposes. 1738: 1739: # Update the tags table. 1740: TAGS: force 1741: cd $(srcdir); \ 1742: mkdir temp; \ 1.1.1.4 root 1743: mv -f c-parse.[ch] cp-parse.[ch] objc-parse.c cexp.c =*.[chy] temp; \ 1.1 root 1744: etags *.y *.h *.c; \ 1745: mv temp/* .; \ 1746: rmdir temp 1747: 1748: # Create the distribution tar file. 1.1.1.5 ! root 1749: #dist: gcc-$(version).tar.gz ! 1750: dist: gcc.xtar.gz 1.1 root 1751: 1.1.1.5 ! root 1752: gcc.xtar.gz: gcc.xtar ! 1753: gzip < gcc.xtar > tmp-gcc.xtar.gz ! 1754: mv tmp-gcc.xtar.gz gcc.xtar.gz 1.1 root 1755: 1.1.1.5 ! root 1756: #gcc-$(version).tar.gz: gcc-$(version).tar ! 1757: # gzip < gcc-$(version).tar > gcc-$(version).tar.gz 1.1 root 1758: 1759: #gcc-$(version).tar: 1.1.1.5 ! root 1760: gcc.xtar: distdir ! 1761: # Make the distribution. ! 1762: tar chf gcc.xtar gcc-$(version) ! 1763: ! 1764: distdir: doc $(srcdir)/INSTALL c-parse.y objc-parse.y cp-parse.y \ ! 1765: c-parse.c cp-parse.c objc-parse.c cexp.c 1.1.1.3 root 1766: if grep -s "for version ${version}" gcc.texi; \ 1767: then true; \ 1768: else echo "You must update the version number in \`gcc.texi'"; sleep 10;\ 1769: fi 1770: # Update the version number in README 1771: awk '$$1 " " $$2 " " $$3 == "This directory contains" \ 1772: { $$6 = version; print $$0 } \ 1773: $$1 " " $$2 " " $$3 != "This directory contains"' \ 1774: version=$(version) README > tmp.README 1775: mv tmp.README README 1.1 root 1776: -rm -rf gcc-$(version) tmp 1777: # Put all the files in a temporary subdirectory 1778: # which has the name that we want to have in the tar file. 1779: mkdir tmp 1780: mkdir tmp/config 1.1.1.4 root 1781: mkdir tmp/objc 1.1 root 1782: for file in *[0-9a-zA-Z+]; do \ 1.1.1.3 root 1783: ln $$file tmp > /dev/null 2>&1 || cp $$file tmp; \ 1.1 root 1784: done 1785: cd config; \ 1786: for file in *[0-9a-zA-Z+]; do \ 1.1.1.5 ! root 1787: if test -d $$file && test "$$file" != RCS; then \ ! 1788: mkdir ../tmp/config/$$file; \ ! 1789: cd $$file; \ ! 1790: for subfile in *[0-9a-zA-Z+]; do \ ! 1791: ln $$subfile ../../tmp/config/$$file >/dev/null 2>&1 \ ! 1792: || cp $$subfile ../../tmp/config/$$file; \ ! 1793: done; \ ! 1794: cd ..; \ ! 1795: else \ ! 1796: ln $$file ../tmp/config >/dev/null 2>&1 \ ! 1797: || cp $$file ../tmp/config; \ ! 1798: fi; \ 1.1 root 1799: done 1.1.1.4 root 1800: cd objc; \ 1801: for file in *[0-9a-zA-Z+]; do \ 1802: ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \ 1803: done 1.1 root 1804: ln .gdbinit tmp 1805: mv tmp gcc-$(version) 1806: # Get rid of everything we don't want in the distribution. 1.1.1.2 root 1807: cd gcc-$(version); make -f Makefile.in extraclean 1.1 root 1808: 1809: # do make -f ../gcc/Makefile maketest DIR=../gcc 1810: # in the intended test directory to make it a suitable test directory. 1811: # THIS IS OBSOLETE; use the -srcdir operand in configure instead. 1812: maketest: 1813: ln -s $(DIR)/*.[chy] . 1814: ln -s $(DIR)/configure . 1815: ln -s $(DIR)/*.def . 1816: -rm -f =* 1817: ln -s $(DIR)/.gdbinit . 1818: ln -s $(DIR)/$(FIXINCLUDES) . 1819: -ln -s $(DIR)/bison.simple . 1820: ln -s $(DIR)/config . 1821: ln -s $(DIR)/move-if-change . 1822: # The then and else were swapped to avoid a problem on Ultrix. 1823: if [ ! -f Makefile ] ; then ln -s $(DIR)/Makefile .; else false; fi 1824: -rm tm.h aux-output.c config.h md 1825: make clean 1826: # You must then run config to set up for compilation. 1.1.1.4 root 1827: 1.1.1.3 root 1828: bootstrap: force 1829: # Only build the C compiler for stage1, because that is the only one that 1830: # we can guarantee will build with the native compiler, and also it is the 1831: # only thing useful for building stage2. 1.1.1.5 ! root 1832: $(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES=c 1.1 root 1833: $(MAKE) stage1 1834: # This used to define ALLOCA as empty, but that would lead to bad results 1835: # for a subsequent `make install' since that would not have ALLOCA empty. 1836: # To prevent `make install' from compiling alloca.o and then relinking cc1 1837: # because alloca.o is newer, we permit these recursive makes to compile 1838: # alloca.o. Then cc1 is newer, so it won't have to be relinked. 1.1.1.5 ! root 1839: $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)" 1.1 root 1840: $(MAKE) stage2 1.1.1.5 ! root 1841: $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)" 1.1 root 1842: 1843: bootstrap2: force 1.1.1.5 ! root 1844: $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)" 1.1 root 1845: $(MAKE) stage2 1.1.1.5 ! root 1846: $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)" 1.1 root 1847: 1848: bootstrap3: force 1.1.1.5 ! root 1849: $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)" 1.1 root 1850: 1.1.1.3 root 1851: # Compare the object files in the current directory with those in the 1852: # stage2 directory. 1853: 1854: compare: force 1855: for file in *.o; do \ 1.1.1.4 root 1856: tail +16c $$file > tmp-foo1; \ 1857: tail +16c stage2/$$file > tmp-foo2 2>/dev/null \ 1858: && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ 1.1.1.3 root 1859: done 1860: -rm -f tmp-foo* 1861: 1862: # Similar, but compare with stage3 directory 1863: compare3: force 1864: for file in *.o; do \ 1.1.1.4 root 1865: tail +16c $$file > tmp-foo1; \ 1866: tail +16c stage3/$$file > tmp-foo2 2>/dev/null \ 1867: && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ 1.1.1.3 root 1868: done 1869: -rm -f tmp-foo* 1870: 1.1 root 1871: # Copy the object files from a particular stage into a subdirectory. 1872: stage1: force 1.1.1.2 root 1873: -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi 1.1 root 1874: -mv $(STAGESTUFF) stage1 1875: -rm -f stage1/libgcc.a 1876: -cp libgcc.a stage1 1877: -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libgcc.a; else true; fi 1878: 1879: stage2: force 1.1.1.2 root 1880: -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi 1.1 root 1881: -mv $(STAGESTUFF) stage2 1882: -rm -f stage2/libgcc.a 1883: -cp libgcc.a stage2 1884: -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libgcc.a; else true; fi 1885: 1886: stage3: force 1.1.1.3 root 1887: -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi 1.1 root 1888: -mv $(STAGESTUFF) stage3 1889: -rm -f stage3/libgcc.a 1890: -cp libgcc.a stage3 1891: -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libgcc.a; else true; fi 1892: 1893: stage4: force 1.1.1.3 root 1894: -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi 1.1 root 1895: -mv $(STAGESTUFF) stage4 1896: -rm -f stage4/libgcc.a 1897: -cp libgcc.a stage4 1898: -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libgcc.a; else true; fi 1899: 1900: # Copy just the executable files from a particular stage into a subdirectory, 1901: # and delete the object files. Use this if you're just verifying a version 1902: # that is pretty sure to work, and you are short of disk space. 1903: risky-stage1: force 1.1.1.3 root 1904: -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi 1.1.1.5 ! root 1905: -mv $(GCC_PARTS) stage1 1.1 root 1906: -rm -f stage1/libgcc.a 1907: -cp libgcc.a stage1 && $(RANLIB) stage1/libgcc.a 1908: -make clean 1909: 1910: risky-stage2: force 1.1.1.3 root 1911: -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi 1.1.1.5 ! root 1912: -mv $(GCC_PARTS) stage2 1.1 root 1913: -rm -f stage2/libgcc.a 1914: -cp libgcc.a stage2 && $(RANLIB) stage2/libgcc.a 1915: -make clean 1916: 1917: risky-stage3: force 1.1.1.3 root 1918: -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi 1.1.1.5 ! root 1919: -mv $(GCC_PARTS) stage3 1.1 root 1920: -rm -f stage3/libgcc.a 1921: -cp libgcc.a stage3 && $(RANLIB) stage3/libgcc.a 1922: -make clean 1923: 1924: risky-stage4: force 1.1.1.3 root 1925: -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi 1.1.1.5 ! root 1926: -mv $(GCC_PARTS) stage4 1.1 root 1927: -rm -f stage4/libgcc.a 1928: -cp libgcc.a stage4 && $(RANLIB) stage4/libgcc.a 1929: -make clean 1930: 1931: #In GNU Make, ignore whether `stage*' exists. 1932: .PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrap 1933: .PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4 1934: 1935: force:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.