@c++-header:
%{E|M|MM:cc1plus -E -D_GNU_SOURCE %(cpp_options) %2 %(cpp_debug_options)} %{!E:%{!M:%{!MM: %{save-temps|no-integrated-cpp:cc1plus -E -D_GNU_SOURCE %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n} cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}} %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}} %(cc1_options) -D_GNU_SOURCE %2 %{+e1*} -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}

@c++:
%{E|M|MM:cc1plus -E -D_GNU_SOURCE %(cpp_options) %2 %(cpp_debug_options)} %{!E:%{!M:%{!MM: %{save-temps|no-integrated-cpp:cc1plus -E -D_GNU_SOURCE %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n} cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}} %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}} %(cc1_options) -D_GNU_SOURCE %2 %{+e1*} %{!fsyntax-only:%(invoke_as)}}}}

@c++-cpp-output:
%{!M:%{!MM:%{!E: cc1plus -fpreprocessed %i %(cc1_options) %2 %{+e*} %{!fsyntax-only:%(invoke_as)}}}}

.ii:
@c++-cpp-output

.cc:
@c++

.cp:
@c++

.cxx:
@c++

.cpp:
@c++

.c++:
@c++

.C:
@c++

.CPP:
@c++

.H:
@c++-header

.hh:
@c++-header

