home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / gcc / config / next / next-specs.h < prev    next >
C/C++ Source or Header  |  1997-01-21  |  18KB  |  374 lines

  1.  
  2. /* The specs have two cases: NEXT_PDO, where binaries are thin, and Mach, 
  3.  * where binaries can be fat.  In both cases, there may be a cpp-precomp
  4.  * available, so tell the remainder of the driver code. */
  5. #define NEXT_CPP_PRECOMP
  6.  
  7. #ifdef NEXT_PDO
  8. #undef NEXT_SPEC
  9. #define NEXT_SPEC(lang_flag,predef_macros,compiler_flags)\
  10.    " %{traditional:cpp}%{traditional-cpp:%{!traditional:cpp}}\
  11.     %{!traditional:%{!traditional-cpp:cpp-precomp -smart}}\
  12.     %{.m:%BCompiling}%{!.m:%BCompiling} " # lang_flag "\
  13.         %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  14.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  15.     %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d}\
  16.         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  17.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  18.     " # predef_macros " %{!undef:%{!ansi:%p} %P} %{trigraphs} \
  19.         %c %{O*:%{!O0:-D__OPTIMIZE__}} %{precomp} %{no-precomp} \
  20.         %{traditional} %{ftraditional:-traditional}\
  21.         %{traditional-cpp:-traditional}\
  22.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  23.         %i %{!M:%{!MM:%{!E:%{!precomp:%{!pipe:%g.i}}}}}\
  24.     %{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}}\
  25.     %{precomp:%{@:-o %f%g-%T.p}%{!@:%W{o}%W{!o:-o %b.p }} } |\n",\
  26.    "%{!M:%{!MM:%{!E:%{!precomp:cc1obj %{!pipe:%g.i} %1\
  27.            %{arch:} %{.m:-fobjc} %{ObjC:-fobjc}\
  28.            %{!Q:-quiet} -dumpbase %b.%{.m:m}%{!.m:c} %{d*} %{m*} %{a}\
  29.            %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  30.            %{W*} %{w} %{pedantic*} %{ansi} \
  31.            %{traditional} %{v:-version} %{pg:-p} %{p} %{f*}\
  32.            %{aux-info*} " # compiler_flags "\
  33.            %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  34.            %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  35.               %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\
  36.               %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o}\
  37.                       %{!pipe:%g.s} %A\n }}}}}"
  38.   {".c", "@c"},
  39.   {"@c",
  40.    NEXT_SPEC (%{ObjC:-lang-objc} %{fobjc:-lang-objc}%{!ObjC:%{!fobjc:-lang-c}},
  41.           %{ObjC:-D__OBJC__} %{fobjc:-D__OBJC__},
  42.           %{ObjC:-fobjc %{gen-decls}} %{fobjc:%{gen-decls}})},
  43.   {".m", "@objective-c"},
  44.   {"@objective-c",
  45.    NEXT_SPEC (-lang-objc, -D__OBJC__, -fobjc %{gen-decls})},
  46.   {"-",
  47.    "%{E:cpp -lang-c %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  48.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  49.     %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d}\
  50.         -undef %{ObjC:-D__OBJC__} %{fobjc:-D__OBJC__}\
  51.     -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2  %{precomp} %{no-precomp}\
  52.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  53.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  54.         %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\
  55.         %{traditional-cpp:-traditional}\
  56.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  57.         %i %W{o*}}\
  58.     %{!E:%e-E required when input is from standard input}"},
  59.   {".h", "@c-header"},
  60. #ifdef _WIN32
  61.   {"@c-header",
  62.    "%{!E:%{!precomp:%eCompilation of header file requested}}\
  63.     %{.h:%BPrecompiling} \
  64.     %{traditional:cpp}%{traditional-cpp:%{!traditional:cpp}}\
  65.     %{!traditional:%{!traditional-cpp:cpp-precomp -smart}}\
  66.     %{fno-objc:-lang-c}%{!fno-objc:-lang-objc} \
  67.     %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  68.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  69.      %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} \
  70.         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  71.      %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  72.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  73.         %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\
  74.         %{traditional-cpp:-traditional}\
  75.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  76.         %i %{!precomp:%W{o*}}%{precomp:%W{o*}%W{!o:-o %b.p}}"},
  77. #else
  78.   {"@c-header",
  79.    "%{!E:%eCompilation of header file requested}\
  80.     %{fno-objc:-lang-c}%{!fno-objc:-lang-objc} \
  81.     %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  82.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  83.      %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} \
  84.         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  85.      %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  86.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  87.         %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\
  88.         %{traditional-cpp:-traditional}\
  89.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  90.         %i %W{o*}"},
  91. #endif
  92. #undef NEXT_SPEC
  93. #define NEXT_SPEC(lang_flag,predef_macros,compiler_name,compiler_flags) \
  94.    "cpp %{.M:%BCompiling}%{!.M:%BCompiling} " # lang_flag "\
  95.         %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  96.     %{C:%{!E:%eGNU C++ does not support -C without using -E}}\
  97.         %{precomp:%ePrecompilation of C++ not supported}\
  98.     %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} \
  99.     -undef -D__GNUC__=%v1 -D__GNUG__=%v1 -D__cplusplus -D__GNUC_MINOR__=%v2\
  100.     " # predef_macros "\
  101.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__} %{!undef:%{!ansi:%p} %P}\
  102.     %c %{O:-D__OPTIMIZE__} %{O1:-D__OPTIMIZE__} %{O2:-D__OPTIMIZE__}\
  103.     %{O3:-D__OPTIMIZE__} %{O4:-D__OPTIMIZE__} %{O5:-D__OPTIMIZE__}\
  104.     %{O6:-D__OPTIMIZE__} %{traditional} %{ftraditional:-traditional}\
  105.         %{traditional-cpp:-traditional} %{trigraphs}\
  106.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  107.         %i %{!M:%{!MM:%{!E:%{!pipe:%g.i}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n",\
  108.    "%{!M:%{!MM:%{!E:" # compiler_name " %{!pipe:%g.i} %1 %2\
  109.            %{!Q:-quiet} -dumpbase %b.%{.M:M}%{.mm:mm}%{!.M:%{!.mm:cc}}\
  110.            %{d*} %{m*} %{a}\
  111.            %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  112.            %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  113.            %{v:-version} %{pg:-p} %{p} %{f*} %{+e*}\
  114.            %{aux-info*} " # compiler_flags "\
  115.            %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  116.            %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  117.               %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\
  118.               %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o}\
  119.                       %{!pipe:%g.s} %A\n }}}}"
  120.   {".cc", "@c++"},
  121.   {".cxx", "@c++"},
  122.   {".cpp", "@c++"},
  123.   {".C", "@c++"},
  124.   {"@c++",
  125.    NEXT_SPEC (%{fobjc:-lang-objc++}%{!fobjc:-lang-c++},
  126.           %{fobjc:-D__OBJC__},
  127.           cc1plus,
  128.           %{fobjc:%{gen-decls}})},
  129.   {".M", "@objective-c++"},
  130.   {".mm", "@objective-c++"},
  131.   {"@objective-c++",
  132.    NEXT_SPEC (-lang-objc++, -D__OBJC__, cc1objplus, -fobjc %{gen-decls})},
  133.   {".i", "@cpp-output"},
  134.   {"@cpp-output",
  135.    "cc1obj %{.i:%BCompiling} %i %1 %{!Q:-quiet} %{d*} %{m*} %{a}\
  136.     %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  137.     %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  138.     %{v:-version} %{pg:-p} %{p} %{f*}\
  139.     %{aux-info*}\
  140.     %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  141.     %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  142.     %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\
  143.             %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o} %{!pipe:%g.s} %A\n }"},
  144.   {".ii", "@c++-cpp-output"},
  145.   {"@c++-cpp-output",
  146.    "cc1objplus %{.ii:%BCompiling} %i %1 %2 %{!Q:-quiet} %{d*} %{m*} %{a}\
  147.         %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  148.         %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  149.         %{v:-version} %{pg:-p} %{p} %{f*} %{+e*}\
  150.         %{aux-info*}\
  151.         %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  152.         %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  153.        %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\
  154.            %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o}\
  155.            %{!pipe:%g.s} %A\n }"},
  156.   {".s", "@assembler-with-cpp"},
  157.   {".S", "@assembler-with-cpp"},
  158.   {"@assembler-with-cpp",
  159.    "cpp -lang-asm %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  160.     %{.s:%BAssembling} %{.S:%BAssembling}\
  161.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  162.     %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{trigraphs} \
  163.         -undef -$ %{!undef:%p %P} -D__ASSEMBLER__ \
  164.         %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\
  165.         %{traditional-cpp:-traditional}\
  166.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  167.         %i %{!M:%{!MM:%{!E:%{!pipe:%g.s}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n",
  168.    "%{!M:%{!MM:%{!E:%{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\
  169.                     %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o}\
  170.             %{!pipe:%g.s} %A\n }}}}"},
  171. #else
  172. #undef NEXT_SPEC
  173. #define NEXT_SPEC(lang_flag,predef_macros,compiler_flags)\
  174.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  175.     %{M:%eCannot use -M with multiple architectures}\
  176.     %{MM:%eCannot use -MM with multiple architectures}\
  177.     %{S:%eCannot use -S with multiple architectures}}\
  178.     %{traditional:cpp}%{traditional-cpp:%{!traditional:cpp}}\
  179.     %{!traditional:%{!traditional-cpp:cpp-precomp -smart}}\
  180.     %{.m:%BCompiling}%{!.m:%BCompiling} " # lang_flag "\
  181.     %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  182.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  183.     -arch %T %{@:-arch_multiple}\
  184.     %{M} %{MM} %{MD:-MD %M} %{MMD:-MMD %M}\
  185.     -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  186.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  187.     " # predef_macros " -D__GNU__ %{precomp} %{no-precomp}\
  188.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  189.     %c %{O:-D__OPTIMIZE__} %{O1:-D__OPTIMIZE__} %{O2:-D__OPTIMIZE__}\
  190.     %{O3:-D__OPTIMIZE__} %{O4:-D__OPTIMIZE__} %{O5:-D__OPTIMIZE__}\
  191.     %{O6:-D__OPTIMIZE__}\
  192.     %{traditional} %{ftraditional:-traditional}\
  193.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  194.     %i %{!M:%{!MM:%{!E:%{!precomp:%{!pipe:%g.i}}}}}\
  195.     %{E:%W{o}}%{M:%W{o}}%{MM:%W{o}}\
  196.     %{precomp:%{@:-o %f%g-%T.p}%{!@:%W{o}%W{!o:-o %b.p }} } |\n",\
  197.    "%{!M:%{!MM:%{!E:%{!precomp:cc1obj %{!pipe:%g.i} %1 \
  198.            -arch %T %{@:-arch_multiple} %{arch:} \
  199.            %{!Q:-quiet} -dumpbase %b.%{.m:m}%{!.m:c} %{d*} %{m*} %{a}\
  200.            %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  201.            %{W*} %{w} %{pedantic*} %{ansi} \
  202.            %{traditional} %{v:-version} %{pg:-p} %{p} %{f*}\
  203.            %{aux-info*} %{!static:%{!dynamic:-dynamic }-fPIC}\
  204.            %{threeThreeMethodEncoding} " # compiler_flags "\
  205.            %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  206.            %{S:%W{o}%{!o:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  207.           %{!S:as %{I*} %{R} %{j} %{J} %{h} %{d2} %a %Y\
  208.               %{force_cpusubtype_ALL} %{dynamic} %{static} \
  209.                %{NEXTSTEP-deployment-target} \
  210.               -arch %T %{@:-arch_multiple}\
  211.               %{@:-o %f%g-%T.o}%{!@: %{c:%W{o}%{!o:-o %w%b.o}}%{!c:-o %d%w%g-%b.o}}\
  212.               %{!pipe:%g.s} %A\n }}}}}"
  213.   {".c", "@c"},
  214.   {"@c",
  215.    NEXT_SPEC (%{fobjc:-lang-objc}%{!fobjc:-lang-c},
  216.           %{fobjc:-D__OBJC__},
  217.           %{fobjc:%{gen-decls}})},
  218.   {".m", "@objective-c"},
  219.   {"@objective-c",
  220.    NEXT_SPEC (-lang-objc, -D__OBJC__, -fobjc %{gen-decls})},
  221.   {"-",
  222.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  223.     %{M:%eCannot use -M with multiple architectures}\
  224.     %{MM:%eCannot use -MM with multiple architectures}\
  225.     %{S:%eCannot use -S with multiple architectures}}\
  226.     %{E:cpp %{ObjC:-lang-objc} %{fobjc:-lang-objc} %{!ObjC:%{!fobjc:-lang-c}}\
  227.      %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  228.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  229.     %{M} %{MM} %{MD:-MD %M} %{MMD:-MMD %M}\
  230.     -D__GNU__ %{precomp} %{no-precomp}\
  231.     -undef %{ObjC:-D__OBJC__} %{fobjc:-D__OBJC__}\
  232.     -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  233.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  234.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  235.     %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\
  236.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  237.     %i %W{o}}\
  238.     %{!E:%e-E required when input is from standard input}"},
  239.   {".h", "@c-header"},
  240.   {"@c-header",
  241.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  242.     %{M:%eCannot use -M with multiple architectures}\
  243.     %{MM:%eCannot use -MM with multiple architectures}\
  244.     %{S:%eCannot use -S with multiple architectures}}\
  245.     %{!E:%{!precomp:%eCompilation of header file requested}} \
  246.         %{.h:%BPrecompiling} \
  247.     %{traditional:cpp}%{traditional-cpp:%{!traditional:cpp}}\
  248.     %{!traditional:%{!traditional-cpp:cpp-precomp -smart}}\
  249.     %{fno-objc:-lang-c}%{!fno-objc:-lang-objc} \
  250.         %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  251.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  252.     -arch %T %{@:-arch_multiple}\
  253.     %{M} %{MM} %{MD:-MD %M} %{MMD:-MMD %M} \
  254.     -D__GNU__ %{precomp} %{no-precomp}\
  255.     -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
  256.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
  257.     %{ObjC:-D__OBJC__} %{fobjc:-D__OBJC__} \
  258.     %{!undef:%{!ansi:%p} %P} %{trigraphs}\
  259.     %c %{O:-D__OPTIMIZE__} %{O1:-D__OPTIMIZE__} %{O2:-D__OPTIMIZE__}\
  260.     %{O3:-D__OPTIMIZE__} %{O4:-D__OPTIMIZE__} %{O5:-D__OPTIMIZE__}\
  261.     %{O6:-D__OPTIMIZE__}\
  262.     %{traditional} %{ftraditional:-traditional}\
  263.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  264.     %i %{!precomp:%W{o}}%{precomp:%{@:-o %f%g-%T.p}%{!@:%W{o}%W{!o:-o %b.p }} }"},
  265. #undef NEXT_SPEC
  266. #define NEXT_SPEC(lang_flag,predef_macros,compiler_name,compiler_flags) \
  267.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  268.     %{M:%eCannot use -M with multiple architectures}\
  269.     %{MM:%eCannot use -MM with multiple architectures}\
  270.     %{S:%eCannot use -S with multiple architectures}}\
  271.     cpp %{.M:%BCompiling}%{!.M:%BCompiling} " # lang_flag "\
  272.      %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  273.     %{C:%{!E:%eGNU C++ does not support -C without using -E}}\
  274.     %{precomp:%ePrecompilation of C++ not supported}\
  275.     %{M} %{MM} %{MD:-MD %M} %{MMD:-MMD %M}\
  276.     -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUG__=%v1 -D__cplusplus\
  277.     " # predef_macros "\
  278.     %{ansi:-trigraphs -$ -D__STRICT_ANSI__} -D__GNU__ %{!undef:%{!ansi:%p} %P}\
  279.     %c %{O:-D__OPTIMIZE__} %{O1:-D__OPTIMIZE__} %{O2:-D__OPTIMIZE__}\
  280.     %{O3:-D__OPTIMIZE__} %{O4:-D__OPTIMIZE__} %{O5:-D__OPTIMIZE__}\
  281.     %{O6:-D__OPTIMIZE__}\
  282.     %{traditional} %{ftraditional:-traditional}\
  283.     %{trigraphs}\
  284.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  285.     %i %{!M:%{!MM:%{!E:%{!precomp:%{!pipe:%g.i}}}}} %{E:%W{o}}%{M:%W{o}}%{MM:%W{o}}\
  286.     %{precomp:%{@:-o %f%g-%T.p}%{!@:%W{o}%W{!o:-o %b.p }} } |\n",\
  287.    "%{!M:%{!MM:%{!E:%{!precomp:" # compiler_name " %{!pipe:%g.i} %1 %2\
  288.            -arch %T %{@:-arch_multiple} \
  289.            %{!Q:-quiet} -dumpbase %b.%{.M:M}%{.mm:mm}%{!.M:%{!.mm:cc}}\
  290.            %{d*} %{m*} %{a}\
  291.            %{!g:%{g*}} %{g:-ggdb} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  292.            %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  293.            %{v:-version} %{pg:-p} %{p} %{f*} %{+e*}\
  294.            %{aux-info*} %{!static:%{!dynamic:-dynamic }-fPIC}\
  295.            %{threeThreeMethodEncoding} " # compiler_flags "\
  296.            %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  297.            %{S:%W{o}%{!o:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  298.           %{!S:as %{I*} %{R} %{j} %{J} %{h} %{d2} %a %Y\
  299.                 %{force_cpusubtype_ALL} %{dynamic} %{static} -arch %T %{@:-arch_multiple}\
  300.                 %{@:-o %f%g-%T.o}%{!@: %{c:%W{o}%{!o:-o %w%b.o}}%{!c:-o %d%w%g-%b.o}}\
  301.                 %{!pipe:%g.s} %A\n }}}}}"
  302.   {".cc", "@c++"},
  303.   {".cxx", "@c++"},
  304.   {".cpp", "@c++"},
  305.   {".C", "@c++"},
  306.   {"@c++",
  307.    NEXT_SPEC (%{fobjc:-lang-objc++}%{!fobjc:-lang-c++},
  308.           %{fobjc:-D__OBJC__},
  309.           cc1plus,
  310.           %{fobjc:%{gen-decls}})},
  311.   {".M", "@objective-c++"},
  312.   {".mm", "@objective-c++"},
  313.   {"@objective-c++",
  314.    NEXT_SPEC (-lang-objc++, -D__OBJC__, cc1objplus, -fobjc %{gen-decls})},
  315.   {".i", "@cpp-output"},
  316.   {"@cpp-output",
  317.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  318.     %{M:%eCannot use -M with multiple architectures}\
  319.     %{MM:%eCannot use -MM with multiple architectures}\
  320.     %{S:%eCannot use -S with multiple architectures}}\
  321.     cc1obj %i %1 %{.i:%BCompiling} \
  322.     -arch %T %{@:-arch_multiple} %{ObjC:-fobjc} %{fobjc} \
  323.     %{!Q:-quiet} %{Y*} %{d*} %{m*} %{a}\
  324.     %{g*} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  325.     %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  326.     %{v:-version} %{pg:-p} %{p} %{f*}\
  327.     %{aux-info*} %{!static:%{!dynamic:-dynamic }-fPIC}\
  328.     %{threeThreeMethodEncoding} %{Obj:%{gen-decls}} %{fobjc:%{gen-decls}}\
  329.     %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  330.     %{S:%W{o}%{!o:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  331.     %{!S:as %{I*} %{R} %{j} %{J} %{h} %{d2} %a %Y\
  332.         %{force_cpusubtype_ALL} %{dynamic} %{static} -arch %T %{@:-arch_multiple}\
  333.         %{@:-o %f%g-%T.o}%{!@: %{c:%W{o}%{!o:-o %w%b.o}}%{!c:-o %d%w%g-%b.o}} %{!pipe:%g.s} %A\n }"},
  334.   {".ii", "@c++-cpp-output"},
  335.   {"@c++-cpp-output",
  336.    "cc1objplus %i %1 %{.ii:%BCompiling}\
  337.         -arch %T %{@:-arch_multiple} %{ObjC++:-fobjc} %{fobjc}\
  338.         %{!Q:-quiet} %{d*} %{m*} %{a}\
  339.         %{!g:%{g*}} %{g:-ggdb} %{O}%{O1}%{O2}%{O3}%{O4}%{O5}%{O6}\
  340.         %{W*} %{w} %{pedantic*} %{ansi} %{traditional}\
  341.         %{v:-version} %{pg:-p} %{p} %{f*} %{+e*}\
  342.         %{aux-info*} %{!static:%{!dynamic:-dynamic }-fPIC}\
  343.         %{threeThreeMethodEncoding} %{ObjC++:%{gen-decls}} %{fobjc:%{gen-decls}}\
  344.         %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  345.         %{S:%W{o}%{!o:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
  346.        %{!S:as %{I*} %{R} %{j} %{J} %{h} %{d2} %a %Y\
  347.            %{force_cpusubtype_ALL} %{dynamic} %{static} -arch %T %{@:-arch_multiple}\
  348.            %{@:-o %f%g-%T.o}%{!@: %{c:%W{o}%{!o:-o %w%b.o}}%{!c:-o %d%w%g-%b.o}}\
  349.            %{!pipe:%g.s} %A\n }"},
  350.   {".s", "@assembler-with-cpp"},
  351.   {".S", "@assembler-with-cpp"},
  352.   {"@assembler-with-cpp",
  353.    "%{@:%{E:%eCannot use -E with multiple architectures}\
  354.     %{M:%eCannot use -M with multiple architectures}\
  355.     %{MM:%eCannot use -MM with multiple architectures}\
  356.     %{S:%eCannot use -S with multiple architectures}}\
  357.     cpp -lang-asm %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
  358.         %{.s:%BAssembling}%{.S:%BAssembling} \
  359.     %{C:%{!E:%eGNU C does not support -C without using -E}}\
  360.     %{M} %{MM} %{MD:-MD %M} %{MMD:-MMD %M} %{trigraphs} \
  361.     -D__GNU__ %{precomp:%dPrecompilation of assembler not supported}\
  362.     -undef -$ %{!undef:%p %P} -D__ASSEMBLER__ \
  363.     %c %{O:-D__OPTIMIZE__} %{O1:-D__OPTIMIZE__} %{O2:-D__OPTIMIZE__}\
  364.     %{O3:-D__OPTIMIZE__} %{O4:-D__OPTIMIZE__} %{O5:-D__OPTIMIZE__}\
  365.     %{O6:-D__OPTIMIZE__}\
  366.     %{traditional} %{ftraditional:-traditional}\
  367.     %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %{F*} %C %{D*} %{U*} %{i*}\
  368.     %i %{!M:%{!MM:%{!E:%{!pipe:%g.s}}}}%{E:%W{o}}%{M:%W{o}}%{MM:%W{o}} |\n",
  369.    "%{!M:%{!MM:%{!E:%{!S:as %{I*} %{R} %{j} %{J} %{h} %{d2} %a %Y\
  370.            %{force_cpusubtype_ALL} %{dynamic} %{static} -arch %T %{@:-arch_multiple} \
  371.             %{@:-o %f%g-%T.o}%{!@: %{c:%W{o}%{!o:-o %w%b.o}}%{!c:-o %d%w%g-%b.o}}\
  372.             %{!pipe:%g.s} %A\n }}}}"},
  373. #endif
  374.