/* Definitions for specs for Objective-C.
   Copyright (C) 1998, 1999 Free Software Foundation, Inc.

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* This is the contribution to the `default_compilers' array in gcc.c for
   objc.  */

  {".m", "@objective-c", 0},
  {"@objective-c",
   /* cc1obj has an integrated ISO C preprocessor.  We should invoke the
      external preprocessor if -save-temps or -traditional is given.  */
   /* APPLE LOCAL begin cpp-precomp dpatel */
   /* Add support to invoke cpp-precomp with -precomp or -cpp-precomp or -E.
      Do not invoke cpp-precomp when -no-cpp-precomp is specified */
     "%{M|MM:%(trad_capable_cpp) -lang-objc -D__OBJC__ %{ansi:-std=c89} %(cpp_options)}\
      %{E:\
	  %{traditional-cpp|no-cpp-precomp:\
	    %(trad_capable_cpp) -lang-objc -D__OBJC__ %{ansi:-std=c89} %(cpp_options)}\
	  %{!traditional-cpp:%{!no-cpp-precomp:\
	    %(cpp_precomp) -lang-objc -D__OBJC__ %{ansi:-std=c89} %(cpp_precomp_options) %y0}}}\
      %{!E:%{!M:%{!MM:\
	  %{save-temps:%(trad_capable_cpp) -lang-objc -D__OBJC__ %{ansi:-std=c89}\
		%(cpp_options) %b.mi \n\
		    cc1obj -fpreprocessed %b.mi %(cc1_options) %{gen-decls}}\
	  %{!save-temps:\
	    %{traditional|ftraditional|traditional-cpp:%{!cpp-precomp:\
		tradcpp0 -lang-objc -D__OBJC__ %{ansi:-std=c89} %(cpp_options) %{!pipe:%g.mi} |\n\
		    cc1obj -fpreprocessed %{!pipe:%g.mi} %(cc1_options) %{gen-decls}}}\
	    %{!fdump=*:%{!fload=*:%{!no-cpp-precomp|cpp-precomp:%{!precomp:%{!traditional-cpp:\
		%(cpp_precomp) -lang-objc -D__OBJC__ %{ansi:-std=c89}\
		  %(cpp_precomp_options) %y0  %{!pipe:%g.mi} |\n\
		    cc1obj -cpp-precomp %{!pipe:%g.mi} %(cc1_options) %{gen-decls}}}}}}\
	    %{precomp:\
		%(cpp_precomp) -lang-objc -D__OBJC__ %{ansi:-std=c89}\
		  %(cpp_precomp_options) %y0\
                  %{precomp:%{@:-o %f%u.p}%{!@:%W{o}%W{!o*:-o %b-gcc3.p}}} }\
	    %{!traditional:%{!ftraditional:%{!traditional-cpp:\
		%{fload=*|fdump=*|no-cpp-precomp:%{!precomp:\
		    cc1obj -lang-objc -D__OBJC__ %{ansi:-std=c89} %(cpp_options) %(cc1_options) %{gen-decls}}}}}}}\
        %{!fsyntax-only:%{!precomp:%(invoke_as)}}}}}", 0},
   /* APPLE LOCAL end cpp-precomp dpatel */
  {".mi", "@objc-cpp-output", 0},
  {"@objc-cpp-output",
  /* APPLE LOCAL cpp-precomp dpatel */
     "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{gen-decls}\
			     %{!fsyntax-only:%{!precomp:%(invoke_as)}}}}}", 0},
